두 좌표 배열 간의 대응 관계 찾기 (Find correspondence between 2 arrays of coordinates)


문제 설명

두 좌표 배열 간의 대응 관계 찾기 (Find correspondence between 2 arrays of coordinates)

3D 좌표에 해당하는 두 개의 큰 2D 배열(3x100,000)이 있고 각 대응의 인덱스를 찾고 싶습니다.

예:

mat1 = np.array([[0,0,0],[0,0,0],[0,0,0],[10,11,12],[1,2,3]]).T

mat2 = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]]).T

그래서 여기 3과 0의 인덱스를 가져와야 합니다. 그리고 약 100,000개의 좌표에서 각 대응을 찾아야 합니다. 이 작업을 수행하는 특정 기능이 Python에 있습니까? for 루프를 적용하는 것은 문제가 될 수 있습니다.

res = [3,0]

요약하자면, 제 필요 사항은 다음과 같습니다.

여기에 이미지 설명 입력


참조 솔루션

방법 1:

We can use Cython‑powered kd‑tree for quick nearest‑neighbor lookup

In [77]: from scipy.spatial import cKDTree

In [78]: d,idx = cKDTree(mat2.T).query(mat1.T, k=1)

In [79]: idx[np.isclose(d,0)]
Out[79]: array([3, 0])

(by user3601754Divakar)

참조 문서

  1. Find correspondence between 2 arrays of coordinates (CC BY‑SA 2.5/3.0/4.0)

#coordinates #Python #arrays #Numpy






관련 질문

지구의 모든 좌표를 생성하시겠습니까? (Generate all coordinates of earth?)

Spritekit이 부모를 변경하면 노드가 사라집니다. (Spritekit changing parent makes the node disappear)

C++의 파일에서 읽은 값을 사용하는 데 도움이 되나요? (Some help using my values read from a file in C++?)

Java의 캔버스에 마우스가 그리는 좌표만 화면에 인쇄하려면 어떻게 해야 합니까? (How do I only print to the screen the coordinates of what the mouse is drawing on a canvas in Java?)

좌표가 영역 내부에 있는지 감지하는 방법은 무엇입니까? (How to detect if coordinate is inside region?)

대상 사각형을 포함하여 그리드의 두 사각형 사이의 거리를 계산하는 방법 (How do I calculate the distance between two squares on a grid, including the target square)

두 좌표 배열 간의 대응 관계 찾기 (Find correspondence between 2 arrays of coordinates)

Postgres 쿼리에서 포인트 유형을 사용하는 방법 (Postgres how to use point type in query)

좌표 목록으로 작업하고 싶습니다 [Haskell] (I want to work with a list of coordinates [Haskell])

C 프로그램에서 해당 선의 특정 점에서 특정 거리, 선 위의 점 찾기 (Find a point on a line, a certain distance from a certain point on that line in c program)

점이 있는 geopandas 데이터 프레임에서 다각형 만들기 (Creating a polygon from a geopandas dataframe with points)

Netlogo는 특정 xycor를 설정합니다. (Netlogo set specific xycor)







코멘트