2010-10-22 81 views
6

Me gustaría sumar una fila particular de una gran matriz NumPy. Sé que la función array.max() dará el máximo en toda la matriz, y array.max(1) me dará el máximo en cada una de las filas como una matriz. Sin embargo, me gustaría obtener el máximo en una determinada fila (por ejemplo, fila 7 o fila 29). Tengo un gran conjunto, por lo que obtener el máximo para todas las filas me dará una penalización de tiempo considerable.Suma una fila de una matriz NumPy

Respuesta

19

Puede acceder fácilmente a una fila de una matriz bidimensional utilizando el operador de indexación. La fila en sí es una matriz, una vista de una parte de la matriz original y expone todos los métodos de matriz, incluidos sum() y max(). Por lo tanto se puede llegar fácilmente al máximo por fila como esto:

x = arr[7].max() # Maximum in row 7 
y = arr[29].sum() # Sum of the values in row 29 

simplemente para la corrección, puede hacer lo mismo para las columnas:

z = arr[:, 5].sum() # Sum up all values in column 5. 
Cuestiones relacionadas