问题
我有一个位置point = [(580991.4677, 4275267.6366, 192.2548)]
我要计算从point
到X
中最近的位置的距离并将其插入到该点。这意味着dist
将是这样的:
[(580991.4677, 4275267.6366, 192.2548, <distance value>)]
匹配点并不重要,但是距离值很重要。
示例数据:X
[(580991.4344, 4275267.6452, 192.3217),
(580991.4369, 4275267.4457, 192.3945),
(580991.4375, 4275267.4929, 192.396),
(580991.4599, 4275267.5186, 192.3361),
(580991.4644, 4275267.5889, 192.2631)]
脚本
到目前为止,我可以计算出n距离。但这是在计算数组X中的点之间的距离,而不是与点对象相比。
import scipy.spatial.distance
dist = scipy.spatial.distance.pdist(X, metric='euclidean')
结果
array([0.21238253, 0.16948566, 0.12994295, 0.08662361, 0.04722764,
0.09619756, 0.19628665, 0.06892213, 0.16613856, 0.10144624])
有指针吗?
答案 0 :(得分:1)
文档中的内容:https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html
scipy.spatial.distance.pdist
计算单个列表中每对点之间的距离。
如果要计算point
与X
中每个条目之间的距离,则可能需要cdist
来执行以下操作:
计算两个输入集合中的每对之间的距离。
因此您将致电:scipy.spatial.distance.cdist(point, X)