我有一个类似于
我将计算每一对行之间的欧几里得距离。
numpy
数组的变量:import numpy as np
a = np.array([[1,0,1,0],
[1,1,0,0],
[1,0,1,0],
[0,0,1,1]])
我将计算每一对行之间的欧几里得距离。
from scipy.spatial import distance
for i in range(0,a.shape[0]):
d = [np.sqrt(np.sum((a[i]-a[j])**2)) for j in range(i+1,a.shape[0])]
print(d)
[1.4142135623730951, 0.0, 1.4142135623730951]
[1.4142135623730951, 2.0]
[1.4142135623730951]
[]
由于我需要在一个巨大的 numpy
数组上运行此代码,是否有更好的 Pythonic 方法?
distance.pdist
吗?用distance.pdist(a)
应该可以解决问题。最终输出应该是什么样的? - Divakar