2010-10-22 12 views
6

Mi piacerebbe sommare una particolare riga di un grande array NumPy. So che la funzione array.max() darà il massimo sull'intero array e array.max(1) mi darà il massimo su ciascuna delle righe come array. Tuttavia, mi piacerebbe ottenere il massimo in una determinata riga (ad esempio, riga 7 o riga 29). Ho una vasta gamma, quindi ottenere il massimo per tutte le righe mi darà una penalità di tempo significativa.Sommare una riga di un array NumPy

risposta

19

È possibile accedere facilmente a una riga di un array bidimensionale utilizzando l'operatore di indicizzazione. La riga stessa è un array, una vista di una parte dell'array originale e espone tutti i metodi dell'array, inclusi sum() e max(). Quindi si può facilmente ottenere il massimo per riga in questo modo:

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

Solo per completezza, si può fare lo stesso per le colonne:

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