【问题标题】:What unit does scipy's kdtree function return distance in?scipy的kdtree函数返回距离的单位是什么?
【发布时间】:2016-08-18 15:17:37
【问题描述】:

我是 KD 树的新手,我使用它们为一个数组 (search_array) 中的每个点找到最近的邻居,并与第二个数组 (vec_array) 中的所有点进行比较。

两个数组的格式如下:

array([[ 51.54094696,   0.09767043],
   [ 51.53620148,   0.0798    ],
   [ 51.53620148,   0.0798    ],
   ..., 
   [ 51.54118347,  -0.08202313],
   [ 48.84996033,   2.32329845],
   [ 40.42570496,  -3.70100427]])

这是我的代码:

def kdtree(search_points, vec_points):
mytree = scipy.spatial.cKDTree(search_points)
dist, indexes = mytree.query(vec_points)
return indexes, dist

result = kdtree(vec_array,search_array)

还有输出:

(array([1361, 1339, 1339, ..., 1139, 1766, 1711]),
array([ 0.01365104,  0.00059667,  0.00059667, ...,  0.00151025,
         0.00754338,  0.00203098]))

第二个数组显然是距离,但我不知道它在哪个单位,如果有人能启发我,我将不胜感激!

【问题讨论】:

  • 单位与输入数组的单位相同。例如,输入数组中前两点之间的距离是np.sqrt((51.54094696 - 51.53620148)**2 + (0.09767043 - 0.0798)**2) = 0.018489776873052591。这些数字不符合您的预期吗?
  • 有道理!非常感谢!

标签: python scipy spatial kdtree


【解决方案1】:

正如 Warren 在上面的评论中所指出的,单位与输入数组中的相同。

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2018-02-01
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多