【发布时间】:2019-08-19 09:59:55
【问题描述】:
我有一个 numpy 数组,其中每个元素都是一个位置,如下所示:
array([[1, 1, 0. ],
[2 , 2, 0. ],
[3 , 3, 1 ]])
我想计算每个元素之间的距离。所以在这里,预期的输出是:
[0, 1.414213, 1.732050]
距离计算如下:
对于第一个元素,它是 0,因为之前没有任何元素。第二个是sqrt((2 - 1)**2 + (2 - 1)**2 + (0 - 0)**2)) 等等
但是,有很多元素(大约数千个),并且此操作会重复多次。所以我需要一种方法来快速执行。
我想知道是否有一个库(或者更好的 numpy 函数)可以解决我的问题。我之前使用了来自 scipy.spatial.distance 的cdist,但它不再起作用(我对 scipy 依赖项有问题),所以我正在寻找另一种方法。
【问题讨论】:
-
你是如何得到输出的?查看 Scipy 的 pdist。
-
对于第一个元素,它是 0,因为之前没有任何元素。第二个是
sqrt((2 - 1)**2 + (2 - 1)**2 + (0 - 0)**2))等等 -
我不能像我说的那样使用 scipy.spatial。这是我的python配置的问题,一个小时前我已经发了一个帖子,但我还没有找到让它工作的方法
-
这应该可以解决/让您更接近 - stackoverflow.com/questions/52030458。对于分机。来源 - scikit-learn.org/stable/modules/generated/….
标签: python performance numpy