У меня есть массив numpy, например:
import numpy as np
a = np.array([[1,0,1,0],
[1,1,0,0],
[1,0,1,0],
[0,0,1,1]])
Я хотел бы рассчитать euclidian distance между каждой парой строк.
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?
distance.pdist? Это должно решить это с помощью:distance.pdist(a). Каким должен быть конечный результат? - person Divakar   schedule 12.04.2017