我对query_pairs
cKDTree的query_ball_tree
和Scipy
方法之间的差异/相似性感到有些困惑。
阅读docs我们可以看到它们具有相同的描述:
query_ball_tree(self,other,r [,p,eps]) - 查找距离最多为r的所有点对 query_pairs(self,r [,p,eps]) - 查找距离最多为r的所有点对。
他们甚至需要相同的强制性参数,但要求query_ball_tree
的{{1}}除外(来自docs):&#34 ;包含要搜索的点的树。" 。
那么,这两种方法之间存在实际差异吗?是否优先使用一个而不是另一个?我目前使用other
作为我的目的,但我正在考虑替代它。
我见过人们使用前者query_pairs
,这表明你可以在不同的树之间进行查询......但我猜测它会等同于{{1}如果我们做了像tree1.query_ball_tree(tree2, ...)
这样的事情。非常感谢任何指导。
答案 0 :(得分:1)
query_ball_tree
找到self
和other
之间距离最大为r的所有点对。
query_pairs
找到self
中距离最大为r的所有点对。
这些新的官方文档可能会为您提供帮助:
scipy.spatial.cKDTree.query_ball_tree — SciPy v1.6.0.dev参考指南http://scipy.github.io/devdocs/generated/scipy.spatial.cKDTree.query_ball_tree.html#scipy.spatial.cKDTree.query_ball_tree
scipy.spatial.cKDTree.query_pairs — SciPy v1.6.0.dev参考指南http://scipy.github.io/devdocs/generated/scipy.spatial.cKDTree.query_pairs.html#scipy.spatial.cKDTree.query_pairs