在numpy中获取n对距离的最快方法。

问题描述 投票:0回答:1

我有n对具有m个维度的向量,我想找到最快的方法计算这n对向量的eculidian距离。我想找到最快的方法来计算这n对向量的eculidian距离。一种方法是迭代每对向量,计算向量之间的距离。

python numpy numpy-ndarray array-broadcasting
1个回答
0
投票

如果我理解你的问题,你有两个坐标数组,你想要元素--欧几里得距离。如果是这样,请看下面的例子

>>> 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.norm 连同 axis 参数来计算元素的欧几里得距离。

>>> np.linalg.norm(a - b, axis=1)
array([2.23606798, 3.60555128, 4.24264069, 8.48528137])
© www.soinside.com 2019 - 2024. All rights reserved.