如何用 NumPy 计算欧几里得距离?

新手上路,请多包涵

我在 3D 空间中有两点:

 a = (ax, ay, az)
b = (bx, by, bz)

我想计算它们之间的距离:

 dist = sqrt((ax-bx)^2 + (ay-by)^2 + (az-bz)^2)

我如何用 NumPy 做到这一点?我有:

 import numpy
a = numpy.array((ax, ay, az))
b = numpy.array((bx, by, bz))

原文由 Nathan Fellman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 714
2 个回答

使用 numpy.linalg.norm

 dist = numpy.linalg.norm(a-b)

这是因为 欧几里得距离l2 norm ,并且 --- 中的 numpy.linalg.norm ord 参数的默认值为 2。有关更多理论,请参阅 数据挖掘简介

在此处输入图像描述

原文由 u0b34a0f6ae 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 scipy.spatial.distance.euclidean

 from scipy.spatial import distance
a = (1, 2, 3)
b = (4, 5, 6)
dst = distance.euclidean(a, b)

原文由 Avision 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题