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