找到两个向量之间的每对距离

时间:2016-04-18 11:29:45

标签: python scipy

我有两个向量,比方说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')

dist = [scipy.spatial.distance.cdist(x,y, metric='sqeuclidean') for x,y in zip(x,y)]

我得到了

ValueError: XA must be a 2-dimensional array.

我应该如何计算dist,为什么我必须为此目的重塑数据?

1 个答案:

答案 0 :(得分:0)

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

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

对于n维点之间的欧几里德距离,id通常如何写这个;但如果你只处理1维点,那么elpres建议的绝对差异会更简单。

相关问题