求和NumPy数组的一行

rob*_*ntw 7 python arrays performance numpy

我想总结一个大型NumPy数组的一个特定行.我知道该函数array.max()将在整个数组中给出最大值,并且array.max(1)将作为数组在每个行中给出最大值.但是,我想在某一行中获得最大值(例如,第7行或第29行).我有一个大数组,所以获得所有行的最大值将给我一个重要的时间惩罚.

Fer*_*yer 22

您可以使用索引运算符轻松访问二维数组的行.行本身是一个数组,是原始数组的一部分视图,并公开所有数组方法,包括sum()max().因此,您可以轻松地获得每行的最大值:

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

为了完整起见,您可以对列进行相同的操作:

z = arr[:, 5].sum()  # Sum up all values in column 5.
Run Code Online (Sandbox Code Playgroud)