问题
I have a numpy.ndarray of 3d-points, i.e. the np.shape of it is (4350,3) and such a second numpy.ndarray of 3d-points of np.shape (10510,3). Now I am trying to find the right python-package to calculate the nearest neighbors in the second array of the points in the first array as quickly as possible.
I've found a quite similar question here: find the k nearest neighbours of a point in 3d space with python numpy but I don't understand how to use the solution there for my problem.
I'd very, very much appreciate your help on this!
回答1:
Here is the KDTree
way :
from scipy.spatial import KDTree
data= np.random.rand(10510,3)
sample= np.random.rand(4350,3)
kdtree=KDTree(data)
Then dist,points=kdtree.query(sample,2)
will give you the 2 best neighbors for the 4350 candidates in about one second.
来源:https://stackoverflow.com/questions/54114728/finding-nearest-neighbor-for-python-numpy-ndarray-in-3d-space