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]