多个向量之间的距离

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

我有两组三维矢量,我想对它们的相似程度进行度量。我当前的方法是手动计算它们的差的欧几里得范数。

一个例子看起来像

import numpy as np

N = 4000
a = np.random.rand(3,N)
b = np.random.rand(3,N)

dist = np.sum((a-b)**2,axis=0)
dist = np.sum(dist)/len(dist)

还有更好的方法可以做到这一点;即我没有想到的numpy函数或度量?

python numpy vector euclidean-distance
2个回答
0
投票

您可以在scipy包中使用距离。

from scipy.spatial import distance

distance.euclidean(a, b)

0
投票

要以numpy计算欧几里得距离,可以使用

numpy.linalg.norm(a-b)

还存在其他类型的距离,用于测量其他类型的相似性。 SciPy在文档中实现并描述了很多这些方法:https://docs.scipy.org/doc/scipy/reference/spatial.distance.html

© www.soinside.com 2019 - 2024. All rights reserved.