Come dividere una fila di array numpy per la somma di tutti i valori in questa riga?dividere numpy riga per riga somma
Questo è un esempio. Ma sono abbastanza sicuro che ci sia un modo elegante e molto più efficiente di fare questo:
import numpy as np
e = np.array([[0., 1.],[2., 4.],[1., 5.]])
for row in xrange(e.shape[0]):
e[row] /= np.sum(e[row])
Risultato:
array([[ 0. , 1. ],
[ 0.33333333, 0.66666667],
[ 0.16666667, 0.83333333]])
Non vedo come si può cadere il 'asse = 1'. Senza l'argomento 'axis',' sum() 'restituisce la somma di tutti i valori nella matrice. –
In numpy 1.7 c'è un argomento 'keepdims' che ti permette di fare' e/e.sum (axis = 1, keepdims = True) ' – Jaime
@WarrenWeckesser: Non ho detto che potresti rilasciare la parte' 1', I ha detto che è possibile rilasciare la parte 'axis ='. – DSM