如何解决如何通过广播计算两个numpy数组的欧几里得距离
我想计算两个numpy数组的欧几里得距离。
数组中的每一行都是一个向量。
例如
a = np.array([125,20,210,55],[11,97,111,71])
b = np.array([51,19,35,65],[59,80,37,60])
我需要计算a中每一行与b中每一行的欧几里得距离。
该数组的实际大小可以大到5000行和4000列。
我知道如何通过两个for循环和一个for循环来做到这一点。 我需要通过向量化numpy数组解决它。 例如向另一个广播数组,例如https://numpy.org/devdocs/user/theory.broadcasting.html
不使用
spatial.distance.cdist
但是,我不知道该怎么做。
任何帮助将不胜感激。
解决方法
import numpy as np
np.sqrt((np.square(a[:,np.newaxis] - b).sum(axis=2)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。