求两个向量之间每对向量的距离

2024-09-23 22:24:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个向量,比如x=[2,4,6,7]y=[2,6,7,8],我想找出每个对应对之间的欧几里德距离,或者任何其他实现的距离(例如scipy)。会的 dist=[0, 2, 1, 1]。在

当我尝试的时候

dist = scipy.spatial.distance.cdist(x,y, metric='sqeuclidean')

或者

^{pr2}$

我明白了

ValueError: XA must be a 2-dimensional array.

我应该如何计算dist?为什么要为此目的重塑数据?在


Tags: 距离distscipybemetric向量spatialdistance
1条回答
网友
1楼 · 发布于 2024-09-23 22:24:08

cdist不计算对应对之间的距离列表,而是计算所有对之间的距离矩阵。在

np.linalg.norm((np.asarray(x)-np.asarray(y))[:, None], axis=1)

是通常情况下,对于n维点之间的欧几里得距离,我是这样写的;但是如果你只处理一维点,绝对差异,正如elpress所建议的那样会更简单。在

相关问题 更多 >