【发布时间】:2016-05-03 08:48:59
【问题描述】:
我有一堆坐标包含在三个numpy 数组中:xarr、yarr 和 zarr(每个数组中的对应位置属于同一个点 - 即第一个点在 xarr[0], yarr[0],zarr[0])。给定空间中的另一个点P(x,y,z),我想找到距离P(x,y,z) r 内的所有点。
我目前(而且效率非常低)的方法是简单地迭代并计算到每个点的距离,看看它是否在P(x,y,z) 的 r 内。
但是,我想使用 SciPy 的 k-d 树算法来执行此操作,但我不确定如何开始实现它(我对 Python 很陌生)。如果有人能简要地概述一些代码来演示如何设置给定数据的 k-d 树,我将不胜感激。
我知道SciPy documentation of its k-d tree implementation,
我已经看过了,但我仍然对如何根据我拥有的格式的数据创建树感到困惑(np.mgrid 和 ravel() 被调用,我不太明白为什么)。
谢谢!
【问题讨论】:
-
如果我理解正确,您有一个 single Nx3 点数组,对于该数组中的每个点,您要计算在某个半径内的其他点的数量呢?
-
@ali_m 他们有3个独立的数组,每个坐标一个,他们想在所描述的点中找到靠近新点的点。
-
我不知道这对这个特定问题是否有用,我对 k-d 树并不感兴趣(尽管我可能应该),但我发现这是一个有用的库:@ 987654322@
标签: python numpy scipy binary-search-tree