Aşağıdaki koda sahibim. Python'da sonsuza dek sürüyor.NumPy Yayını: İki dizi arasındaki karesel farkların toplamının hesaplanması
ab = a[:,None,:] - b
out = np.einsum('ijk,ijk->ij',ab,ab)
Veya onun opsiyonel scipy's cdist
kullanmak -
def euclidean_square(a,b):
squares = np.zeros((a.shape[0],b.shape[0]))
for i in range(squares.shape[0]):
for j in range(squares.shape[1]):
diff = a[i,:] - b[j,:]
sqr = diff**2.0
squares[i,j] = np.sum(sqr)
return squares
vay, bu einsum şeyi uygulamaya gerek olduğunu. Kodumdan çok daha fazlası yayınlanabilir ... teşekkür ederim. – bordeo
@bordeo Önceki sorularınızın cevaplarında gördüğünüz gibi saf bir sihirdir! – Divakar