agf*_*agf 36

cKDTreeKDTree的一个子集,用Cython包装的C++实现,因此速度更快.

他们每个人都是

二进制trie,其每个节点代表一个轴对齐的超矩形.每个节点指定一个轴并根据它们沿该轴的坐标是否大于或小于特定值来分割该组点.

但是KDTree

还支持所有邻居查询,包括点数组和其他kd树.这些确实使用了相当有效的算法,但kd-tree不一定是这种计算的最佳数据结构.

  • 我很惊讶这在KDTree文档和文章中没有更突出的广告.对于我在3D中找到大约20,000点的邻居的简单(并且可能是常见的)用例,cKDTree快了40倍. (9认同)
  • “全邻居查询”是什么样的?我猜这有点像一个并行版本,要求一次到许多点最近的点。有人可以确认吗? (2认同)
  • 我和弗兰克在一起。我不知道什么是“所有邻居查询”。您能解释一下什么是“所有邻居查询”吗? (2认同)

New*_*wmu 13

在一个用例中(5D最近邻居在KDTree中查找大约100K点)cKDTree比KDTree快约12倍.

  • 另一个数据点:在大约50,000个测试向量的24维1,640个点中找到两个最近的邻居:KDTree-2m 32s / cKDTree-360ms。 (2认同)