在 3d 空间中为 python numpy.ndarray 寻找最近的邻居

Stu*_*ntu 5 python numpy nearest-neighbor python-3.x numpy-ndarray

我有一个 numpy.ndarray 的 3d 点,即它的 np.shape 是 (4350,3) 和这样的第二个 numpy.ndarray 的 3d 点的 np.shape (10510,3)。现在我试图找到正确的 python 包来尽快计算第一个数组中点的第二个数组中的最近邻居。

我在这里发现了一个非常相似的问题:使用 python numpy 在 3d 空间中找到一个点的 k 个最近邻点, 但我不明白如何在那里使用解决方案来解决我的问题。

我非常非常感谢你在这方面的帮助!

B. *_* M. 6

这是KDTree方法:

from scipy.spatial import KDTree

data= np.random.rand(10510,3)
sample= np.random.rand(4350,3)
kdtree=KDTree(data)
Run Code Online (Sandbox Code Playgroud)

然后 dist,points=kdtree.query(sample,2)将在大约一秒钟内为您提供 4350 个候选人的 2 个最佳邻居。