【问题标题】:Fastest way in numpy to get distance of n pairsnumpy中获得n对距离的最快方法
【发布时间】:2020-05-27 18:46:42
【问题描述】:

我有 n 对 m 维向量。我想找到最快的方法来计算这 n 对的 eculidian 距离。一种方法是遍历每一对并计算向量之间的距离。

【问题讨论】:

标签: python numpy numpy-ndarray array-broadcasting


【解决方案1】:

如果我理解您的问题,您有两个坐标数组,并且您需要按元素计算的欧式距离。如果有,请看下面的例子

>>> import numpy as np
>>> a = np.array([[1,2], [3,4], [5,6], [7,8]])
>>> b = np.array([[2,4], [1,1], [8,9], [1,2]])

您可以使用 numpy.linalg.normaxis 参数来计算逐元素欧式距离

>>> np.linalg.norm(a - b, axis=1)
array([2.23606798, 3.60555128, 4.24264069, 8.48528137])

【讨论】:

    猜你喜欢
    • 2022-08-10
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2013-12-30
    • 1970-01-01
    • 2020-02-18
    相关资源
    最近更新 更多