2010-10-22 5 views
6

Я хотел бы суммировать одну определенную строку большого массива NumPy. Я знаю, что функция array.max() даст максимум по всему массиву, а array.max(1) даст мне максимум по каждой из строк в виде массива. Однако я хотел бы получить максимум в определенной строке (например, в строке 7 или в строке 29). У меня большой массив, поэтому получение максимума для всех строк даст мне значительный штраф времени.Суммировать одну строку массива NumPy

ответ

19

Вы можете легко получить доступ к строке двумерного массива с помощью оператора индексирования. Сама строка представляет собой массив, представление части исходного массива и предоставляет все методы массива, включая sum() и max(). Таким образом, вы можете легко получить максимум для каждой строки, как это:

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

Просто для полноты картины, вы можете сделать то же самое для столбцов:

z = arr[:, 5].sum() # Sum up all values in column 5. 
Смежные вопросы