Функция Numpy nanargmax() возвращает индексы максимального элемента массива на определенной оси, игнорируя NaN. Нельзя доверять результатам, если срез содержит только NaN и Infs.
Что такое функция np.nanargmax в Python?
nanagrmax() — это встроенная функция Numpy, которая используется в Python для получения индексов максимального элемента из массива (одномерный массив) или любой строки или столбца (многомерный массив) любого заданного массива. Но если в массиве есть какие-либо NaN, он игнорирует эти значения и возвращает индексы.
Синтаксис
|
1 |
numpy.nanargmax(arr,axis=None) |
Параметры
Функция nanargmax() принимает в качестве параметра два аргумента:
- arr: Массив, из которого мы хотим получить индексы максимального элемента.
- axis: по умолчанию это None. Но для многомерного массива, если мы собираемся найти индекс любого максимума элемента по строкам или по столбцам, мы должны указать axis = 1 или axis = 0 соответственно.
Возвращаемое значение
Функция nanargmax() возвращает массив той же формы, что и заданный массив, содержащий индексы максимальных элементов.
Поиск индекса максимального элемента из одномерного массива в Python NumPy
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# app.py #Importing numpy import numpy as np #We will create an 1D array arr = np.array([40, 24, np.nan, 63, 121, 4, 64]) #Printing the array print("The array is: ", arr) #Shape of the array print("Shape of the array is : ", np.shape(arr)) #Now we will print index of max value of this array print("Index of value of the given array is: ", np.nanargmax(arr)) |
Выход:
|
1 2 3 |
The array is: [ 40. 24. nan 63. 121. 4. 64.] Shape of the array is : (7,) Index of value of the given array is: 4 |
Объяснение.
В этой программе мы сначала объявили массив с некоторыми случайными числами, включая число nan, заданное пользователем. Затем мы напечатали форму(размер) массива. Затем мы вызвали nanargmax(), чтобы получить индекс максимального элемента массива.
Мы видим, что максимальный элемент этого массива равен 121(кроме nan), который находится в позиции 4, поэтому выход равен 4.
Нахождение индексов максимальных элементов из многомерного массива
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#Importing numpy import numpy as np #We will create a 2D array #Of shape 4x3 arr = np.array([(14, 29, 34),(np.nan, 55, 46),(1, 38, np.nan), (5, np.nan, 52)]) #Printing the array print("The array is: ") print(arr) print("Shape of the array is: ", np.shape(arr)) #Now we will find the indices of maximum value for some cases #Indices of maximum value of each row a = np.nanargmax(arr, axis=1) print("Index of maximum value of each row of the array is: ", a) #Indices of ,aximum value of each column b = np.nanargmax(arr, axis=0) print("Index of maximum value of each column of the array is: ", b) |
Выход:
|
1 2 3 4 5 6 7 8 |
The array is: [[14. 29. 34.] [nan 55. 46.] [ 1. 38. nan] [ 5. nan 52.]] Shape of the array is: (4, 3) Index of maximum value of each row of the array is: [2 1 1 2] Index of maximum value of each column of the array is: [0 1 3] |
Объяснение.
В этой программе мы сначала объявили матрицу размера 4×3, и вы также можете увидеть форму матрицы, которая равна(4,3). Затем мы вызвали nanargmax(), чтобы получить вывод о различных случаях.
В первом случае мы передали arr и axis=1, что возвращает массив размера 4, содержащий индексы всех максимальных элементов из каждой строки. Во втором случае мы передали arr и axis=0, что возвращает массив размера 3, содержащий индексы всех максимальных элементов из каждого столбца.
