我是新手,正在学习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
。这些数字不是您预期的吗? - Warren Weckesser