Supponiamo di avere le seguenti 2 allineamenti:Sum la differenza al quadrato tra 2 allineamenti NumPy
import numpy as np
a=np.asarray([[1,2,4],
[3,1,2]])
b=np.asarray([[2,1,1],
[3,2,3],
[4,1,2],
[2,2,1],])
Per ogni a_row riga in una, desidero ottenere la somma di differenza al quadrato tra a_row e ogni riga b . La matrice risultante sarebbe un array 2 per 4. Il risultato atteso sarebbe il seguente:
array([[ 11., 5., 14., 10.],
[ 2., 2., 1., 3.]])
ho già implementato una soluzione che utilizza ciclo:
c=np.zeros((2,4))
for e in range(a.shape[0]):
c[e,:] = np.sum(np.square(b-a[e,:]),axis=1)
print c
cosa ho bisogno è una soluzione completamente vettorizzati, vale a dire non è richiesto alcun ciclo.
Sembra come un naturale per lambda e chiusure. – duffymo