numpy.argmax() в Python

Функция numpy.argmax() выводит индексы максимальных значений вдоль оси. В случае многократного вхождения максимальных значений она выводит индексы, соответствующие первому вхождению.

Синтаксис

numpy.argmax(a, axis=None, out=None)

Параметры

  • массив: входной
  • ось [int, необязательно]: по умолчанию индекс находится в сплющенном массиве, если нет, то вдоль указанной оси.
  • out [необязательный массив]: если указано, результат будет вставлен в этот массив. Он должен соответствовать по форме и типу.

Что мы получим?

Массив индексов в массив. Он будет иметь ту же форму, что и array.shape, но короче.

Находим максимальный элемент из матрицы с помощью numpy.argmax()

import numpy as np    

a = np.matrix([[1,2,3,33],[4,5,6,66],[7,8,9,99]])

print(np.argmax(a)) 
print(np.argmax(a[:,:]))  
print(np.argmax(a[:1])) 
print(np.argmax(a[:,2]))  
print(np.argmax(a[1:,2])) 

Вывод

11
11
3
2
1

argmax() возвращает позицию или индекс наибольшего значения в массиве. Массив может быть единичным или многомерным.

Используем np.unravel_index при выводе argmax

Можно использовать функцию np.unravel_index, чтобы получить индекс, соответствующий 2D-массиву из вывода numpy.argmax.

import numpy as np
a = np.arange(6).reshape(2,3) + 10
print(a)

index = np.unravel_index(np.argmax(a), a.shape)
print(index)
print(a[index])

Вывод

[[10 11 12]
 [13 14 15]]
(1, 2)
15

Ищем максимальное количество элементов по столбцам с помощью numpy.argmax()

Приведенный ниже код выводит значение индекса максимального количества элементов в каждом столбце.

import numpy as np
a = np.arange(12).reshape(4,3) + 10
print(a)

print("Max elements", np.argmax(a, axis=0))

Вывод

[[10 11 12]
 [13 14 15]
 [16 17 18]
 [19 20 21]]
Max elements [3 3 3]

Ответить