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 может искать по одномерному массиву. В этом случае функция вернет индексную позицию минимального значения в массиве. Давайте посмотрим, как это выглядит:
Давайте разберем, что делает приведенный выше код:
Мы импортируем numpy с псевдонимом
np
Мы создаем массив
arr
, который содержит шесть уникальных значений.Затем мы выводим результат передачи нашего массива в функцию
Функция возвращает 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 искать минимальное значение в каждой «строке» массива. Давайте посмотрим, как это выглядит:
В приведенном выше блоке кода возвращается массив из трех разных значений. Это соответствует количеству "строк" в массиве.
Изображение ниже иллюстрирует, как выглядит этот процесс:
В следующем разделе вы узнаете, как функция 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-м столбце, чтобы получить имя пользователя, у которого был минимальный балл.
Часто задаваемые вопросы
Заключение
В этом учебнике вы научились использовать мощную функцию np.argmin()
. Функция позволяет найти позицию индекса минимального значения в массиве. Сначала вы узнали, как работает функция, поняв ее параметры и аргументы по умолчанию. Затем вы научились использовать функцию с одномерными и многомерными массивами. Наконец, вы научились использовать функцию с фреймами данных Pandas.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с нижеприведенными руководствами:
NumPy где: обрабатывать элементы массива условно
Last updated