Как найти индекс значения в массиве NumPy (с примерами)
Вы можете использовать следующие методы, чтобы найти положение индекса определенных значений в массиве NumPy:
Метод 1: найти все ценные позиции в индексе
np.where (x== value )
Метод 2: найти первую позицию индекса значения
np.where (x== value )[0][0]
Метод 3: найти первую позицию индекса нескольких значений
#define values of interest vals = np.array([ value1 , value2 , value3 ]) #find index location of first occurrence of each value of interest sorter = np.argsort (x) sorter[np.searchsorted (x, vals, sorter=sorter)]
В следующих примерах показано, как использовать каждый метод на практике.
Метод 1: найти все ценные позиции в индексе
В следующем коде показано, как найти каждую позицию индекса, которая равна определенному значению в массиве NumPy:
import numpy as np #define array of values x = np.array([4, 7, 7, 7, 8, 8, 8]) #find all index positions where x is equal to 8 np.where (x== 8 ) (array([4, 5, 6]),)
Из вывода мы видим, что позиции индекса 4, 5 и 6 равны значению 8 .
Метод 2: найти первую позицию индекса значения
В следующем коде показано, как найти первую позицию индекса, равную определенному значению в массиве NumPy:
import numpy as np #define array of values x = np.array([4, 7, 7, 7, 8, 8, 8]) #find first index position where x is equal to 8 np.where (x== 8 )[0][0] 4
Из вывода мы видим, что значение 8 сначала встречается в позиции индекса 4.
Метод 3: найти первую позицию индекса нескольких значений
В следующем коде показано, как найти первую позицию индекса нескольких значений в массиве NumPy:
import numpy as np #define array of values x = np.array([4, 7, 7, 7, 8, 8, 8]) #define values of interest vals = np.array([4, 7, 8]) #find index location of first occurrence of each value of interest sorter = np.argsort (x) sorter[np.searchsorted (x, vals, sorter=sorter)] array([0, 1, 4])
Из вывода мы видим:
- Значение 4 сначала встречается в индексной позиции 0.
- Значение 7 сначала встречается в индексной позиции 1.
- Значение 8 сначала встречается в индексной позиции 4.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в NumPy:
Как найти индекс минимального элемента массива в питоне


Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required
Индекс минимального числа [закрыт]
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 3 года назад .
Есть список x = [5, 7, 6, 8, 0, 5] Как сделать чтобы выводился индекс минимального числа, то есть 5? Нужно чтобы функция работала с любым списком.
Отслеживать
25k 4 4 золотых знака 20 20 серебряных знаков 36 36 бронзовых знаков
задан 24 сен 2020 в 13:44
17 1 1 бронзовый знак
Линейный поиск с запоминанием индекса
24 сен 2020 в 13:47
в вашем примере индекс минимального числа равен 4, а не 5
24 сен 2020 в 14:27
уточните вопрос пожалуйста — функция должна возвращать индекс первого встреченного минимального элемента или всех минимумов?
24 сен 2020 в 15:09
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
def f(lst): minimal = min(lst) index = [] for i in range(len(lst)): if lst[i] == minimal: index.append(i) return index
Отслеживать
ответ дан 24 сен 2020 в 13:46
19.6k 6 6 золотых знаков 22 22 серебряных знака 56 56 бронзовых знаков
1). автор вопроса просил функцию. 2). что, если минимальное число в списке будет встречаться несколько раз?
24 сен 2020 в 14:27
@strawdog, по поводу второго вопроса — это надо адресовать автору топика)
24 сен 2020 в 15:08
x = [5, 7, 6, 8, 0, 5] x.index(min(x))
(и это правильно, а не 5, как вы указали).
Отслеживать
ответ дан 24 сен 2020 в 17:33
11.6k 2 2 золотых знака 10 10 серебряных знаков 16 16 бронзовых знаков
def minimum_indices(array): min_array = min(array) return [index for index, elem in enumerate(A) if elem == min_A] A = [5, 7, 6, 8, 0, 5, 0]; print(min_indexies(A)) # 4, 6
Отслеживать
ответ дан 24 сен 2020 в 17:58
Владислав Харламов Владислав Харламов
1,451 1 1 золотой знак 9 9 серебряных знаков 18 18 бронзовых знаков
- python
- массивы
-
Важное на Мете
Похожие
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Функция min() в Python, минимальное значение элемента
Возвращает минимальное значение элемента последовательности
Синтаксис:
min(iterable, *[, key, default]) min(arg1, arg2, *args[, key])
Параметры:
- iterable — итерируемый объект,
- key — должна быть функцией (принимает один аргумент), используется для порядка сравнения элементов итерируемого объекта. Функция вычисляется один раз.
- default — значение по умолчанию, если итерируемый объект окажется пустым,
- arg1. argN — позиционный аргумент,
- *args — список позиционных аргументов.
Возвращаемое значение:
- наименьшее значение.
Описание:
Функция min() возвращает минимальное значение элемента из итерируемого объекта или наименьшее из двух или более переданных позиционных аргументов.
- Если указан один позиционный аргумент, он должен быть итерируемым объектом (список, кортеж, словарь и т.д.).
- Если в функцию передается два или более позиционных аргумента, возвращается наименьшее из них.
- В случае, когда минимальное значение имеют сразу несколько аргументов, то возвращается первый по порядку элемент с наименьшим значением. Это согласуется с другими инструментами сохранения стабильности сортировки, такими как sorted(iterable, key=keyfunc, reverse=True)[0] и heapq.nlargest(1, iterable, key=keyfunc)
Аргумент key — функция подобная той, которая используется в дополнительном методе списков list.sort() . Функция принимает один аргумент и используется для упорядочивания элементов.
>>> x = ['4', '11', '6', '31'] # функция `min` сравнивает # числа как строки >>> min(x) # '11' # функция 'key=lambda i: int(i)' применяется # к каждому элементу списка 'x', преобразуя # строки в тип 'int' и теперь функция `min` # сравнивает элементы списка как числа. >>> min(x, key=lambda i: int(i)) # '4' # или другое применение функции 'key' выбор # списка с наименьшей суммой элементов >>> min([1,2,3,4], [3,4,5], key=sum) # [1,2,3,4]
Аргумент default по умолчанию указывает объект, который нужно вернуть, если итерируемый объект пуст. Если итерация пуста и значение по умолчанию не указано, то возникает ошибка ValueError .
# Значение по умолчанию >>> min([], default=0) # 0 >>> min([]) # Traceback (most recent call last): # File "", line 1, in # ValueError: min() arg is an empty sequence
При передаче в качестве аргумента текстовых строк, байтовых строк или байтовых массивов, а так же списка символов, минимальное значение будет выбираться исходя из порядка следования символов, в таблице соответствующей кодировки.
>>> x = list('abcdifgh') >>> min(x) # 'a'
Изменено в Python 3.8: Аргумент key может быть None .
Примеры нахождения минимального элемента в последовательности.
- Нахождение самой короткой строки в списке строк;
- Нахождение минимального значения в списке строк чисел;
- Нахождение минимального значения у вторых элементов кортежа;
- Определение индекса у минимального значения в списке;
- Смотрите хороший пример с числами, записанными в строке в описании функции max() .
# использование позиционных аргументов >>> min(5, 3, 6, 5, 6) # 3 # использование в качестве аргумента списка >>> min([1.2, 1.3, 1.5, 2, 5.52]) # 1.2 # комбинирование позиционных аргументов и списка # при передаче списка 'x' происходит его распаковка >>> x = (1.2, 1.3, 1.5, 2, 5.52) >>> min(5, 3, 5, *x) # 1.2
Нахождение самой короткой строки в списке строк.
Найдем самую короткую строку. В качестве ключа используем функцию len() . Она посчитает количество символов в строке каждого переданного позиционного аргумента, а функция min() выберет минимальное число. Строки можно передать например списком [‘Jul’, ‘John’, ‘Vicky’] , результат будет тот же.
>>> min('Jul', 'John', 'Vicky', key=len) # 'Jul'
Нахождение min() в списке строк, записанных как целые числа
Есть список строк чисел и необходимо найти минимум, как если бы они были целыми числами? В первом случае функция min() выберет наименьшее значение списка исходя из лексикографической сортировки. Применим функцию lambda i: int(i) в качестве ключа key , которая преобразует строчные элементы списка в целые числа, тогда функция min() выберет то что нам нужно.
>>> x = ['4', '11', '6', '31'] # неправильное решение >>> min(x) # '11' # правильное решение >>> min(x, key = lambda i: int(i)) # '4'
Нахождение min() по второму элементу кортежа для
Например есть список кортежей. По умолчанию будет выбираться кортеж, у которого минимальное значение имеет первый элемент. Но мы хотим получить кортеж, у которого наименьшее значение имеет второй элемент! Для этого применим лямбда-функцию lambda i : i[1] в качестве ключа key , которая укажет функции min() , из каких элементов кортежа выбирать минимальное значение.
>>> x = [(1,3), (2,4), (1,9), (4,1)] # происходит сравнение по # первым элементам кортежа >>> min(x) # (1,3) # меняем порядок сравнения >>> x = [(1,3), (2,4), (1,9), (4,1)] >>> min(x, key=lambda i : i[1]) # (4,1)
Определение индекса у минимального значения в списке.
Допустим есть список чисел и стоит задача, определить индекс минимального значения в этом списке.
Для решения этой задачи необходимо пронумеровать список, т.е. создать кортеж — индекс/число, а затем найти минимум при помощи функции min() , а в качестве ключа этой функции использовать key=lambda i : i[1] .
>>> lst = [5, 3, 1, 0, 9, 7] # пронумеруем список >>> lst_num = list(enumerate(lst, 0)) # получился список кортежей, в которых # первый элемент - это индекс значения списка, # а второй элемент - само значение списка >>> lst_num # [(0, 5), (1, 3), (2, 1), (3, 0), (4, 9), (5, 7)] # найдем минимум (из второго значения кортежей) >>> t_min = min(lst_num, key=lambda i : i[1]) >>> t_min # (3, 0) # индекс минимального значения списка >>> t_min[0] # 3
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Функция abs(), абсолютное значение числа
- Функция all(), все элементы True
- Функция any(), хотя бы один элемент True
- Функция ascii(), преобразует строку в ASCII
- Функция bin(), число в двоичную строку
- Класс bool(), логическое значение объекта
- Функция breakpoint(), отладчик кода
- Класс bytearray(), преобразует в массив байтов
- Класс bytes(), преобразует в строку байтов
- Функция callable(), проверяет можно ли вызвать объект
- Функция chr(), число в символ Юникода
- Класс classmethod, делает функцию методом класса
- Функция compile() компилирует блок кода Python
- Класс complex(), преобразует в комплексное число
- Функция delattr(), удаляет атрибут объекта
- Класс dict() создает словарь
- Функция dir(), все атрибуты объекта
- Функция divmod(), делит числа с остатком
- Функция enumerate(), счетчик элементов последовательности
- Функция eval(), выполняет строку-выражение с кодом
- Функция exec(), выполняет блок кода
- Функция filter(), фильтрует список по условию
- Класс float(), преобразует в вещественное число
- Функция format(), форматирует значение переменной
- Класс frozenset(), преобразует в неизменяемое множество
- Функция getattr(), значение атрибута по имени
- Функция globals(), переменные глобальной области
- Функция hasattr(), наличие атрибута объекта
- Функция hash(), хэш-значение объекта
- Функция help(), справка по любому объекту
- Функция hex(), число в шестнадцатеричную строку
- Функция id(), идентификатор объекта
- Функция input(), ввод данных с клавиатуры
- Класс int(), преобразует в тип int
- Функция isinstance(), принадлежность экземпляра к классу
- Функция issubclass(), проверяет наследование класса
- Функция iter(), создает итератор
- Функция len(), количество элементов объекта
- Класс list(), преобразовывает в список
- Функция locals(), переменные локальной области
- Функция map(), обработка последовательности без цикла
- Функция max(), максимальное значение элемента
- Класс memoryview(), ссылка на буфер обмена
- Функция min(), минимальное значение элемента
- Функция next(), следующий элемент итератора
- Класс object(), возвращает безликий объект
- Функция oct(), число в восьмеричную строку
- Функция open(), открывает файл на чтение/запись
- Функция ord(), число символа Unicode
- Функция pow(), возводит число в степень
- Функция print(), печатает объект
- Класс property(), метод класса как свойство
- Класс range(), генерирует арифметические последовательности
- Функция repr(), описание объекта
- Функция reversed(), разворачивает последовательность
- Функция round(), округляет число
- Класс set(), создает или преобразовывает в множество
- Функция setattr(), создает атрибут объекта
- Класс slice(), шаблон среза
- Функция sorted(), выполняет сортировку
- Декоратор staticmethod(), метод класса в статический метод
- Класс str(), преобразует объект в строку
- Функция sum(), сумма последовательности
- Функция super(), доступ к унаследованным методам
- Класс tuple(), создает или преобразует в кортеж
- Класс type(), возвращает тип объекта
- Функция vars(), словарь переменных объекта
- Функция zip(), объединить элементы в список кортежей
- Функция __import__(), находит и импортирует модуль
- Функция aiter(), создает асинхронный итератор
- Функция anext(), следующий элемент асинхронного итератора
