2013-01-13 2 views
5

현재 일부 n 차원 데이터를 신속하게 쿼리하기 위해 몇 가지 kd 트리를 만드는 방법을 찾고 있습니다. 그러나, 나는 내가에 기반을 조회 할 수 있도록하려는메타 데이터가있는 scipy kdtree

내 데이터가 id -> {data: somedata, coordinate: x, y}

로 구성 scipy의 KD 트리 알고리즘을 사용하여 몇 가지 문제에 봉착 좌표와 K-가장 가까운 이웃의 식별자뿐만 아니라 수정을 받고 반경 네그 부르의 이드. KDTree와 cKDtree의 구현을 보면이 기능을 사용할 수 없습니다.

내 다른 옵션은 내 자신의 KD 트리를 쓰고 있는데, 나만의 것이기 때문에 그다지 좋지 않을 것이다 ...?

답변

4

KDTree을 가지고 놀면서, 생성자에 주어진 객체처럼 2D numpy 배열을 갖는 것처럼 보이지만 API는 해당 배열에 색인을 반환합니다. 또한 개별 좌표에 데이터를 원숭이 패치 할 수 없습니다.

하지만 여전히 KDTree의 장점을 활용할 수 있습니다. 객체를 첨부 된 데이터 객체의 병렬 목록과 KDTree가 보는 좌표의 배열로 분할해야합니다. 그것이 말하면, 검색을 위해 3 번째 포인트를 반환합니다. 이것은 첨부 된 데이터 오브젝트리스트의 3 번째 인덱스에 해당합니다.

물론, 임의의 개체에서 좌표를 제공하는 키 기능을 제공하는 API보다 더 어색합니다. 키를 파이썬 정렬 기능에 전달하는 방법과 비슷하지만 자체 KDTree 구현을 롤링하는 것보다 훨씬 낫습니다. .

+0

굉장! 나는 설명서를 약간 오해 한 것으로 보인다. 모두 좋았어. – Pwnna

관련 문제