dado un 3 veces 3 numpy gama¿Cómo normalizar una matriz numpy bidimensional en python menos detallada?
a = numpy.arange(0,27,3).reshape(3,3)
# array([[ 0, 3, 6],
# [ 9, 12, 15],
# [18, 21, 24]])
Para normalizar las filas de la matriz de 2 dimensiones pensé en
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
Tiene que haber una manera mejor, ¿no es verdad?
Quizás para aclarar: Al normalizar, quiero decir, la suma de las entradas por fila debe ser una. Pero creo que eso será claro para la mayoría de la gente.
cuidadosa, "normalizar" generalmente significa la plaza * * suma de los componentes es uno. Su definición difícilmente será clara para la mayoría de la gente;) – coldfix