欧几里德距离与权重

Mag*_*gie 5 python numpy scipy euclidean-distance

我目前正在使用SciPy计算欧氏距离

dis = scipy.spatial.distance.euclidean(A,B)
Run Code Online (Sandbox Code Playgroud)

哪里; A,B是5维位向量.它现在工作正常,但如果我为每个维度添加权重,那么仍然可以使用scipy吗?

我现在拥有的: sqrt((a1-b1)^2 + (a2-b2)^2 +...+ (a5-b5)^2)

我想要的:sqrt(w1(a1-b1)^2 + w2(a2-b2)^2 +...+ w5(a5-b5)^2)使用scipy或numpy或任何其他有效的方法来做到这一点.

谢谢

tal*_*ies 8

编写自己的加权L2规范的建议很好,但这个答案中提供的计算是不正确的.如果打算计算

在此输入图像描述

那么这应该做的工作:

def weightedL2(a,b,w):
    q = a-b
    return np.sqrt((w*q*q).sum())
Run Code Online (Sandbox Code Playgroud)