NumPy argmin(): Получение индекса минимального значения в массивах

В этом учебнике вы научитесь использовать функцию NumPy argmin(), чтобы найти позицию индекса минимального значения в массиве NumPy. Функция np.argmin() предлагает невероятные возможности для работы с одномерными и многомерными массивами. Вы также узнаете, как расширить функциональность до Pandas DataFrames, что позволит вам находить значения в разных столбцах.

Ищете способ найти индекс максимального значения в массиве NumPy? Для этого можно использовать функцию NumPy argmax()

К концу этого руководства вы узнаете:

  • Как использовать функцию np.argmin() для поиска индекса наименьшего значения в массиве NumPy

  • Как работать с одномерными и многомерными массивами для нахождения индекса минимального значения, в том числе при работе с разными осями

  • Как расширить функцию np.argmin() на DataFrames Pandas

Оглавление

Понимание функции NumPy argmin

В этом разделе вы узнаете, как работает функция np.argmin() и какие различные параметры доступны в этой функции. Это может быть важным первым шагом в понимании использования функции. Давайте рассмотрим, из чего состоит функция:

Мы видим, что функция принимает четыре параметра, из которых только один является обязательным. В таблице ниже приведено разбиение различных параметров и их аргументов по умолчанию:

Параметр
Описание
Значение по умолчанию
Принятые значения

a=

Входной массив

N/A

array-like

axis=

По какой оси искать минимальное значение. Если None, массив выравнивается.

None

integer

out=

Если указано, результат будет вставлен в этот массив.

None

array

keepdims=

Если установлено значение True, уменьшенные оси остаются в результате как размеры одного размера.

<no value>

boolean

Теперь, когда у вас есть твердое понимание дизайна функции NumPy argmin(), давайте начнем изучение ряда примеров.

Как использовать функцию NumPy argmin с одномерным массивом

В своей самой простой форме функция argmin в NumPy может искать по одномерному массиву. В этом случае функция вернет индексную позицию минимального значения в массиве. Давайте посмотрим, как это выглядит:

Давайте разберем, что делает приведенный выше код:

  1. Мы импортируем numpy с псевдонимом np

  2. Мы создаем массив arr, который содержит шесть уникальных значений.

  3. Затем мы выводим результат передачи нашего массива в функцию

Функция возвращает 2. Это означает индекс минимального значения в массиве. Поскольку индексация массивов NumPy начинается с нуля, 2 соответствует третьему элементу в списке.

Мы можем затем получить доступ к соответствующему значению этого элемента индекса, индексируя массив, как показано ниже:

В следующем разделе вы научитесь использовать функцию np.argmin() с двумерными массивами.

Как использовать функцию NumPy argmin с двумерными массивами

Функция argmin из библиотеки NumPy также может использоваться с двумерными массивами. При работе с двумя и более измерениями, функция предоставляет различный функционал для возвращения индексов минимальных значений.

Давайте посмотрим, что произойдет, когда мы передадим двумерный массив в функцию np.argmin()

В приведенном выше блоке кода мы загрузили двумерный массив в функцию np.argmin(). Функция вернула одну позицию индекса. Этот результат может вас удивить! Давайте исследуем, почему это происходит.

По умолчанию функция np.argmin() будет использовать axis=None в качестве аргумента по умолчанию. Поскольку ось не указана, NumPy вернет индекс одномерной версии массива. Это означает, что, по умолчанию, NumPy преобразует массив в одномерный и найдет индекс минимального значения.

В следующих двух разделах вы узнаете, как настроить его поведение, чтобы получать индексы минимальных значений по строкам и по столбцам.

Нахождение индекса минимального значения по строкам с помощью NumPy argmin

Мы можем использовать параметр axis= функции np.argmin() для настройки как NumPy ищет минимальные значения. Используя axis=1, мы указываем NumPy искать минимальное значение в каждой «строке» массива. Давайте посмотрим, как это выглядит:

В приведенном выше блоке кода возвращается массив из трех разных значений. Это соответствует количеству "строк" в массиве.

Изображение ниже иллюстрирует, как выглядит этот процесс:

Понимание того, как работает функция np.argmin()

В следующем разделе вы узнаете, как функция argmin в NumPy может искать минимальные значения по столбцам.

Нахождение индекса минимального значения по столбцу с помощью NumPy argmin

Изменяя параметр axis= и установив его значение в 0, мы можем найти индексы минимальных значений, выполняя поиск по столбцам. Это позволяет нам находить минимальные значения вдоль оси с индексом 0. Давайте посмотрим, как это выглядит:

Мы видим, что функция возвращает массив из четырех значений. Это соответствует количеству значений в каждом из внутренних массивов.

В следующем разделе вы узнаете, как использовать функцию argmin с Pandas.

Использование аргумента NumPy с Pandas

В этом разделе вы узнаете, как найти строку в DataFrame Pandas с минимальным значением в заданной колонке. Вы также узнаете, как вернуть значение заданной колонки, основываясь на поиске минимального значения в другой колонке.

Поскольку функция np.argmin() может принимать на вход массивоподобные значения, мы можем передать в неё числовые колонки из Pandas DataFrame Series. Давайте загрузим образцовый DataFrame и найдем индекс минимального значения:

При передаче в функцию столбца Pandas в виде серии, функция возвращает индекс строки, соответствующей минимальному значению.

Мы можем получить доступ к информации строки, используя акцессор .iloc. Давайте посмотрим, как это выглядит:

Наконец, мы также можем получить доступ к значению столбца, основываясь на нахождении минимального значения в другом столбце Pandas. Аналогично, это можно сделать с использованием акцессора .iloc, как показано ниже:

В приведенном выше блоке кода мы используем акцессор .iloc для доступа к значению в 0-м столбце, чтобы получить имя пользователя, у которого был минимальный балл.

Часто задаваемые вопросы

chevron-rightКак NumPy argmin обрабатывает несколько минимальных значений?hashtag

При нахождении нескольких минимальных значений в массиве NumPy возвращается индекс только первого минимального значения.

chevron-rightКак NumPy argmin обрабатывает пропущенные значения?hashtag

По умолчанию NumPy обрабатывает пропущенные значения как минимальные. Для того, чтобы игнорировать пропущенные значения, можно использовать функцию np.nanargmin(), которая позволяет игнорировать пропущенные значения.

Заключение

В этом учебнике вы научились использовать мощную функцию np.argmin(). Функция позволяет найти позицию индекса минимального значения в массиве. Сначала вы узнали, как работает функция, поняв ее параметры и аргументы по умолчанию. Затем вы научились использовать функцию с одномерными и многомерными массивами. Наконец, вы научились использовать функцию с фреймами данных Pandas.

Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь с нижеприведенными руководствами:

Последнее обновление