np.argmax(): Как использовать NumPy Argmax
В этом учебном пособии вы узнаете, как использовать функцию argmax() в NumPy для поиска индекса наибольшего значения в массиве. Функция np.argmax()
может быть использована для нахождения максимального значения по массиву, а также по осям различных размерностей. Функция часто может вызывать замешательство, но это руководство должно развеять все ваши сомнения относительно того, как она работает.
К концу этого урока вы узнаете:
Как работает функция np.argmax()
Как использовать np.argmax() для поиска индекса максимального значения
Как использовать функцию argmax для фильтрации кадра данных Pandas
Оглавление
Что такое функция NumPy argmax?
Функция argmax()
в NumPy используется для возвращения индекса максимального значения (или значений) массива по определенной оси. Прежде чем углубляться, давайте взглянем на то, как выглядит функция и какие параметры она имеет:
В таблице ниже представлены различные параметры функции и их значения по умолчанию, а также краткое описание того, что они делают:
a=
None
array-like
Входной массив, который будет использоваться для поиска максимальных значений.
axis=
None
integer
По умолчанию массив сглажен. Указывая ось, максимальные значения находятся вдоль указанных осей.
out=
None
array
Если указано, результаты будут вставлены в массив.
keepdims=
<no value>
boolean
Если задано значение True, уменьшенные оси остаются размерами одного размера.
В следующем разделе вы узнаете, как работает функция np.argmax() на практических примерах.
Как работает функция NumPy argmax()?
В этом разделе вы узнаете, как использовать функцию argmax() библиотеки NumPy для поиска индекса максимального значения (или значений) в массиве. Давайте начнем с одномерного массива, чтобы показать, как функция работает:
Давайте разберем то, что мы сделали выше:
Мы импортировали NumPy, используя псевдоним
np.
Мы создали массив
arr,
содержащий пять значений.Мы создали переменную
max_idx,
которая стала результатом передачи массива в функциюnp.argmax()
.
При выводе нашего результата на печать, мы увидели, что он возвращает 2
. На данном этапе это должно быть довольно понятно: можно заметить, что самое большое значение - это 5
и оно находится на позиции индекса
Теперь давайте рассмотрим более сложный пример: мы передадим двумерный массив со значениями по умолчанию
Результат, возможно, удивит вас: мы передали двумерный массив, но было возвращено только одно значение. Точно так же ни один из массивов не имеет длины 9. Для многих пользователей функции скорее всего ожидалось, что будет возвращен массив из двух значений, каждое из которых предоставляет индекс максимального значения.
Однако, поскольку параметр axis
установлен в значение None
, NumPy преобразует массивы в одномерный массив и возвращает индекс максимального значения полученного массива. В следующем разделе вы узнаете, как изменить поведение функции np.argmax()
, чтобы находить индексы максимальных значений по различным осям.
Как изменить ось функции NumPy argmax()
Функция np.argmax()
принимает необязательный параметр axis=
. По умолчанию он установлен в None
, что означает, что передаваемый массив преобразуется в одномерный. Можно указать 0
для сортировки по столбцам или 1
для сортировки по строкам.
Давайте снова рассмотрим предыдущий пример и посмотрим, как будут выглядеть результаты при изменении параметра
При передаче аргумента axis=0
, функция возвращает индекс каждого максимального значения с точки зрения столбца. Из-за этого длина возвращаемого массива равна ширине передаваемого массива.
Если мы хотим вернуть максимальные значения по каждой строке, мы можем использовать параметр axis=1
. Ниже показано, как это делается:
В приведенном выше примере функция возвращает массив длиной 2, где каждое значение соответствует позиции индекса максимального значения в каждой "строке".
Как использовать argmax для фильтрации кадра данных Pandas
В этом разделе вы научитесь использовать функцию np.argmax()
для фильтрации DataFrame в Pandas. Если мы хотим вернуть строку, содержащую максимальное значение в заданном столбце, мы можем использовать функцию np.argmax()
, чтобы найти индекс этой строки. Давайте посмотрим, как это работает:
В приведенном выше коде мы использовали доступ через .loc
для фильтрации нашего DataFrame на основе индексной позиции, возвращаемой функцией np.argmax()
Заключение
В этом учебном пособии вы научились использовать функцию np.argmax()
для поиска позиции индекса максимального значения (или значений) в массиве NumPy. Сначала вы научились понимать параметры функции. Затем вы узнали, как использовать функцию на одномерном массиве, а также на многомерных массивах по разным осям. Наконец, вы научились использовать функцию для фильтрации DataFrame в Pandas для поиска индекса строки, содержащей максимальное значение.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:
NumPy для науки о данных в Python
NumPy linspace: создание равномерно расположенных массивов с помощью np.linspace
Пространство журналов NumPy: понимание функции
np.logspace()
Плитка NumPy для упорядочения массивов
Last updated