【问题标题】:scipy spatial to get the distance from a 3D point and an array of 3D pointsscipy 空间获取与 3D 点和 3D 点数组的距离
【发布时间】:2018-10-15 20:30:31
【问题描述】:

问题

我有一个位置point = [(580991.4677, 4275267.6366, 192.2548)] 我想计算从pointX 中最近位置的距离并将其插入到该点。这意味着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])

任何指针?

【问题讨论】:

  • 如果这成功了,你能把它标记为我接受的答案吗? :)

标签: python scipy-spatial


【解决方案1】:

来自文档:https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html

scipy.spatial.distance.pdist 计算单个列表中每对点之间的距离。

如果您想计算pointX 中的每个条目之间的距离,您可能需要cdist,它执行以下操作:

计算两个输入集合中每对之间的距离。

所以你会打电话给:scipy.spatial.distance.cdist(point, X)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2019-03-28
    • 2015-08-16
    相关资源
    最近更新 更多