【问题标题】:Getting the Euclidean distance of X and Y in Python [duplicate]在Python中获取X和Y的欧几里得距离[重复]
【发布时间】:2020-11-28 21:35:51
【问题描述】:

我对 python 还很陌生,所以我希望有人可以帮助我。我们有两个数组 X 和 Y

X=np.array([[ 5.43840675, -1.05259078, -0.21793506,  8.56686818, -2.58056957,
        -0.07310339, -0.31181501,  0.02696586],
       [ 5.72318296, -0.99665473, -0.14540062,  8.32051008, -3.36201189,
        -0.04897565, -0.34271698, -0.0339766 ]])

Y=np.array([[ 5.72318296, -0.99665473, -0.14540062,  8.32051008, -3.36201189,
        -0.04897565, -0.34271698, -0.0339766 ],
       [ 5.43840675, -1.05259078, -0.21793506,  8.56686818, -2.58056957,
        -0.07310339, -0.31181501,  0.02696586]])

我对计算两个 numpy 数组(X 和 Y)的欧几里得距离很感兴趣。例如 X[1], Y[0] 之间的距离 应该为零,因为这些向量之间没有区别。

X[1]=[ 5.72318296, -0.99665473, -0.14540062,  8.32051008, -3.36201189, -0.04897565, -0.34271698, -0.0339766 ] is equal to 
Y[0]=[ 5.72318296, -0.99665473, -0.14540062,  8.32051008, -3.36201189, -0.04897565, -0.34271698, -0.0339766 ]

我需要让这个想法发挥作用,所以如果有人能告诉我我需要做什么才能让这个想法发挥作用,我将不胜感激。

【问题讨论】:

  • 欧几里得距离的计算有一个非常清晰的公式。你尝试了什么?
  • 这对您有帮助吗? reference
  • @DeepSpace 清除公式没有帮助,因为我在数组中有向量
  • @MisterNox 谢谢你,但这无济于事

标签: python numpy


【解决方案1】:

基于Euclidean distance 公式:

import math
x = [ 5.72318296, -0.99665473, -0.14540062,  8.32051008, -3.36201189, -0.04897565, -0.34271698, -0.0339766 ]
y = [ 5.72318296, -0.99665473, -0.14540062,  8.32051008, -3.36201189, -0.04897565, -0.34271698, -0.0339766 ]
Index = 0
sum = 0
while Index < len(x):
    sum += (x[Index] - y[Index]) ** 2
    Index += 1
print(math.sqrt(sum))

【讨论】:

  • 谢谢,但这不是我想要的,我有一个数组而不是简单数组中的向量!!!!!!!!!!!! @pooya
  • 只需将此代码包装在一个函数中,然后为每对向量调用它。
猜你喜欢
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
  • 2010-12-15
  • 2018-07-19
相关资源
最近更新 更多