2010-10-22 13 views
6

Je voudrais résumer une ligne particulière d'un grand tableau NumPy. Je sais que la fonction array.max() donnera le maximum sur l'ensemble du tableau, et array.max(1) me donnera le maximum sur chacune des lignes sous la forme d'un tableau. Cependant, j'aimerais obtenir le maximum sur une certaine ligne (par exemple, ligne 7 ou ligne 29). J'ai un grand tableau, donc obtenir le maximum pour toutes les lignes me donnera une pénalité de temps significative.Somme d'une ligne d'un tableau NumPy

Répondre

19

Vous pouvez facilement accéder à une ligne d'un tableau bidimensionnel à l'aide de l'opérateur d'indexation. La ligne elle-même est un tableau, une vue d'une partie du tableau d'origine, et expose toutes les méthodes de tableau, y compris sum() et max(). Par conséquent, vous pouvez facilement obtenir le maximum par ligne comme celui-ci:

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

Juste pour être complet, vous pouvez faire la même chose pour les colonnes:

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