在Python中获取X和Y的欧几里得距离[重复]
Posted
技术标签:
【中文标题】在Python中获取X和Y的欧几里得距离[重复]【英文标题】:Getting the Euclidean distance of X and Y in Python [duplicate] 【发布时间】: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 谢谢你,但这无济于事 【参考方案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 只需将此代码包装在一个函数中,然后为每对向量调用它。以上是关于在Python中获取X和Y的欧几里得距离[重复]的主要内容,如果未能解决你的问题,请参考以下文章