Поиск максимального значения в 3D массиве

Есть трехмерный массив данных следующего плана:

[[[4 1 3]
  [0 2 8]
  [7 1 6]]

 [[6 0 2]
  [7 7 1]
  [5 9 9]]

 [[1 6 2]
  [9 9 8]
  [9 7 7]]]

На выходе хочу получить максимальное значение каждого двумерного массива. То есть числа 8, 9, 9.

Как перебрать это в цикле понятно, но есть ли способ сделать это с помощью NumPy, без использования явных циклов?


Ответы (1 шт):

Автор решения: MaxU

Воспользуйтесь arr.max(axis=(1,2)).

Пример:

In [48]: np.random.seed(42)

In [49]: a = np.random.randint(100, size=(3,3,3))

In [50]: a
Out[50]:
array([[[51, 92, 14],
        [71, 60, 20],
        [82, 86, 74]],

       [[74, 87, 99],
        [23,  2, 21],
        [52,  1, 87]],

       [[29, 37,  1],
        [63, 59, 20],
        [32, 75, 57]]])

In [51]: a.max(axis=(1,2))
Out[51]: array([92, 99, 75])
→ Ссылка