scipy.spatial.KDTree 和 scipy.spatial.cKDTree 之间的区别
这两种算法有什么区别?
What is the difference between these two algorithms?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
这两种算法有什么区别?
What is the difference between these two algorithms?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
从 SciPy 1.6 开始,cKDTree 和 KDTree 是相同的,如果您不担心 1.6 之前的兼容性,您应该更喜欢 KDTree。
在 SciPy 1.6 之前, cKDTree< /a> 是 KDTree,实现于C++ 封装在 Cython 中,因此速度更快。
From SciPy 1.6 on, cKDTree and KDTree are identical, and you should prefer KDTree if you aren't worried about pre-1.6 compatibility.
Before SciPy 1.6, cKDTree was a subset of KDTree, implemented in C++ wrapped in Cython, so therefore faster.
在用例中(在具有大约 100K 点的 KDTree 中进行 5D 最近邻居查找),cKDTree 比 KDTree 快大约 12 倍。
In a use case (5D nearest neighbor look ups in a KDTree with approximately 100K points) cKDTree is around 12x faster than KDTree.
2022 年更新:cKDTree 已弃用
当前 (v1.8) SciPy 文档指出 scipy.spatial.cKDTree现已弃用,并被功能相同的 scipy 取代。空间.KDTree。
这里是注释:
Update 2022: cKDTree is deprecated
The current (v1.8) SciPy documentation states that scipy.spatial.cKDTree is now deprecated and was replaced by the functionally-identical scipy.spatial.KDTree.
Here is the note:
目前,两者具有几乎相同的 API,并且
cKDTree
比KDTree
更快。因此,在不久的将来,SciPy 开发人员计划删除
KDTree
,并且cKDTree
将以向后兼容的方式重命名为KDTree
。参考:
详细的 SciPy 路线图 — SciPy v1.6.0.dev 参考指南
https://docs.scipy.org/doc/scipy/参考/roadmap-detailed.html#spatial
Currently, both have almost same APIs, and
cKDTree
is faster thanKDTree
.So, In the near future, SciPy developers are planning to remove
KDTree
, andcKDTree
will be renamed toKDTree
in a backwards-compatible way.Ref:
Detailed SciPy Roadmap — SciPy v1.6.0.dev Reference Guide
https://docs.scipy.org/doc/scipy/reference/roadmap-detailed.html#spatial