这两种算法有什么区别?
在用例中(在具有大约 100K 点的 KDTree 中进行 5D 最近邻查找),cKDTree 比 KDTree 快约 12 倍。
当前 (v1.8) SciPy 文档指出 scipy.spatial.cKDTree 现已弃用,并被功能相同的 scipy.spatial.KDTree 取代。
这里是注释:
cKDTree 在功能上与 KDTree 相同。在 SciPy v1.6.0 之前,cKDTree 具有更好的性能和略有不同的功能,但现在这两个名称仅出于向后兼容的原因而存在。如果与 SciPy 兼容 < 1.6 is not a concern, prefer KDTree.
目前,两者的API几乎相同,并且
cKDTree
比KDTree
更快。
因此,在不久的将来,SciPy 开发人员计划删除 KDTree
,并且 cKDTree
将以向后兼容的方式重命名为 KDTree
。
参考: 详细的 SciPy 路线图 — SciPy v1.6.0.dev 参考指南 https://docs.scipy.org/doc/scipy/reference/roadmap-detailed.html#spatial