Attualmente sto usando SciPy
per calcolare la distanza euclideadistanza euclidea con pesi
dis = scipy.spatial.distance.euclidean(A,B)
dove; A, B sono vettori bit a 5 dimensioni. Funziona bene ora, ma se aggiungo pesi per ogni dimensione, è ancora possibile usare scipy?
Quello che ho adesso: sqrt((a1-b1)^2 + (a2-b2)^2 +...+ (a5-b5)^2)
Quello che voglio: sqrt(w1(a1-b1)^2 + w2(a2-b2)^2 +...+ w5(a5-b5)^2)
usando SciPy o NumPy o qualsiasi altro modo efficace per farlo.
Grazie
Questa non è la norma contenuta nella domanda - avete squadrata i pesi. Anche '.sum()' è completamente ridondante, 'q * q.T' è il prodotto interno del vettore con se stesso, es. è * la * somma. – talonmies
Hai ragione riguardo ai pesi, avrei dovuto essere più attento, tuttavia le tue critiche riguardo al fatto che '.sum()' sia completamente ridondante sono fuorvianti. Il risultato di 'q * q.T' sarebbe una matrice 1x1, che sarebbe un tipo di ritorno inaspettato per una funzione di norma, la somma lo trasformerà in uno scalare. – wim
Ma perché usare 'sum()' per trasmettere su uno scalare? 'np.asscalar' sarà più volte più veloce? – talonmies