Функция nanargmin
Функция nanargmin возвращает индекс наименьшего элемента в массиве,
пропуская все значения NaN. Если массив содержит несколько минимальных значений,
возвращается индекс первого из них. Входной массив не изменяется.
Первый параметр функции - это массив для поиска минимума.
Вторым параметром можно указать ось (axis), вдоль которой производится поиск.
Если ось не задана, поиск выполняется по всему уплощённому массиву.
Синтаксис
np.nanargmin(arr, [axis])
Пример
Давайте найдём индекс минимального элемента в одномерном массиве, содержащем значения NaN:
import numpy as np
arr = np.array([4, 1, np.nan, 7, 2])
res = np.nanargmin(arr)
print(res)
Результат выполнения кода:
1
Пример
Применим функцию к двумерному массиву, выполнив поиск вдоль разных осей:
import numpy as np
arr = np.array([[5, np.nan, 3],
[2, 8, 1],
[4, 6, np.nan]])
res_axis0 = np.nanargmin(arr, axis=0)
res_axis1 = np.nanargmin(arr, axis=1)
print("Min indices along columns (axis=0):", res_axis0)
print("Min indices along rows (axis=1):", res_axis1)
Результат выполнения кода:
Min indices along columns (axis=0): [1 2 1]
Min indices along rows (axis=1): [2 2 0]
Пример
Если весь массив состоит только из значений NaN, то возникает исключение ValueError.
Покажем это на примере:
import numpy as np
arr = np.array([np.nan, np.nan, np.nan])
try:
res = np.nanargmin(arr)
print(res)
except ValueError as e:
print("Error:", e)
Результат выполнения кода:
Error: All-NaN slice encountered
Смотрите также
-
функцию
nanmin,
которая возвращает минимальное значение с игнорированием NaN -
функцию
nanargmax,
которая возвращает индекс максимального элемента с игнорированием NaN -
функцию
nanmax,
которая возвращает максимальное значение с игнорированием NaN -
функцию
nanmean,
которая вычисляет среднее значение с игнорированием NaN