Dato un 3 volte 3 NumPy matriceCome normalizzare un array numpy bidimensionale in python meno dettagliato?
a = numpy.arange(0,27,3).reshape(3,3)
# array([[ 0, 3, 6],
# [ 9, 12, 15],
# [18, 21, 24]])
Per normalizzare le righe della matrice 2-dimensionale ho pensato
row_sums = a.sum(axis=1) # array([ 9, 36, 63])
new_matrix = numpy.zeros((3,3))
for i, (row, row_sum) in enumerate(zip(a, row_sums)):
new_matrix[i,:] = row/row_sum
Ci deve essere un modo migliore, non c'è?
Forse per chiarire: Con la normalizzazione intendo, la somma degli accessi per riga deve essere uno. Ma penso che sarà chiaro alla maggior parte delle persone.
attenzione, "normalizzare" di solito significa il quadrato * * somma dei componenti è uno. La tua definizione difficilmente sarà chiara alla maggior parte delle persone;) – coldfix