Функция nanargmax
Функция nanargmax возвращает индекс максимального элемента
в массиве, игнорируя значения NaN. Если массив содержит
только элементы NaN, функция вернёт ошибку. Первым
параметром функция принимает массив, вторым параметром можно
задать ось для вычислений.
Синтаксис
np.nanargmax(arr, axis=None)
Пример
Найдём индекс максимального элемента в одномерном массиве с пропущенными значениями:
import numpy as np
arr = np.array([1, np.nan, 3, 2, np.nan])
res = np.nanargmax(arr)
print(res)
Результат выполнения кода:
2
Пример
Применим функцию к двумерному массиву вдоль оси 0:
import numpy as np
arr = np.array([[np.nan, 5, 3], [8, np.nan, 2], [4, 7, np.nan]])
res = np.nanargmax(arr, axis=0)
print(res)
Результат выполнения кода:
[1 2 0]
Пример
Выполним вычисления вдоль оси 1:
import numpy as np
arr = np.array([[1, np.nan, 5], [np.nan, 8, 2], [3, 4, np.nan]])
res = np.nanargmax(arr, axis=1)
print(res)
Результат выполнения кода:
[2 1 1]
Пример
Если все элементы в массиве являются NaN, функция вызовет ошибку:
import numpy as np
arr = np.array([np.nan, np.nan, np.nan])
res = np.nanargmax(arr)
print(res)
Результат выполнения кода:
ValueError: All-NaN slice encountered
Пример
Функция также работает с многомерными массивами:
import numpy as np
arr = np.array([[[1, np.nan], [3, 2]], [[np.nan, 5], [4, 6]]])
res = np.nanargmax(arr, axis=None)
print(res)
Результат выполнения кода:
7