2016-03-26 17 views

cevap

5

Öyle gibi bir broadcasted way farklılıkları hesapladıktan sonra np.einsum kullanabilirsiniz ... Yayın içine bu hesaplamayı çevirmek için bir yolu olmalı bizim sorunu için gerektiği gibi 'sqeuclidean' olarak ayarlanmış metrik argüman şöyle bize kare öklid mesafeleri vermek -

from scipy.spatial.distance import cdist 
out = cdist(a,b,'sqeuclidean') 
+0

vay, bu einsum şeyi uygulamaya gerek olduğunu. Kodumdan çok daha fazlası yayınlanabilir ... teşekkür ederim. – bordeo

+0

@bordeo Önceki sorularınızın cevaplarında gördüğünüz gibi saf bir sihirdir! – Divakar

0

cdist kullanarak yanında başka çözüm aşağıdaki

difference_squared = np.zeros((a.shape[0], b.shape[0])) 
for dimension_iterator in range(a.shape[1]): 
    difference_squared = difference_squared + np.subtract.outer(a[:, dimension_iterator], b[:, dimension_iterator])**2. 
İlgili konular