我有两组三维矢量,我想对它们的相似程度进行度量。我当前的方法是手动计算它们的差的欧几里得范数。
一个例子看起来像
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函数或度量?
您可以在scipy包中使用距离。
from scipy.spatial import distance
distance.euclidean(a, b)
要以numpy计算欧几里得距离,可以使用
numpy.linalg.norm(a-b)
还存在其他类型的距离,用于测量其他类型的相似性。 SciPy在文档中实现并描述了很多这些方法:https://docs.scipy.org/doc/scipy/reference/spatial.distance.html