Функция Numpy argmax() возвращает индексы максимального элемента массива на определенной оси.
- Что такое функция np.argmax() в Python?
- Синтаксис
- Параметры
- Возвращаемое значение
- Нахождение индекса максимального элемента из одномерного массива
- Нахождение индексов максимальных элементов многомерного массива
- Создание массива с помощью np.arange() и последующее использование np. argmax()
- Несколько вхождений максимальных значений
Что такое функция np.argmax() в Python?
np.argmax() — это встроенная функция Numpy, которая используется в Python для получения индексов максимального элемента из массива (одномерный массив) или любой строки или столбца (многомерный массив) любого заданного массива.
Синтаксис
|
1 |
numpy.argmax(arr,axis=None,out=None) |
Параметры
Функция np.argmax() принимает в качестве параметра три аргумента:
- arr: массив, из которого мы хотим получить индексы максимального элемента.
- axis: по умолчанию это None. Но для многомерного массива, если мы собираемся найти индекс любого максимума элемента по строкам или по столбцам, мы должны указать ось = 1 или ось = 0 соответственно.
- out: это необязательный параметр. Это обеспечивает возможность вставки вывода в массив с соответствующей формой и типом.
Возвращаемое значение
Функция Python NumPy argmax() возвращает массив той же формы, что и заданный массив, содержащий индексы максимальных элементов.
Нахождение индекса максимального элемента из одномерного массива
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
#Importing numpy import numpy as np #We will create an 1D array arr = np.array([4, 24, 3, 12, 4, 4]) #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.argmax(arr)) |
Выход:
|
1 2 3 |
The array is: [ 4 24 3 12 4 4] Shape of the array is : (6,) Index of value of the given array is: 1 |
Объяснение.
В этой программе мы сначала объявили массив с некоторыми случайными числами, заданными пользователем. Затем мы напечатали форму (размер) массива.
Затем мы вызвали argmax(), чтобы получить индекс максимального элемента массива. Мы видим, что максимальный элемент этого массива равен 14, что находится в позиции 1, поэтому выход равен 1.
Нахождение индексов максимальных элементов многомерного массива
|
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),(42, 5, 46),(1, 38, 44),(5, 16, 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.argmax(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.argmax(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] [42 5 46] [ 1 38 44] [ 5 16 52]] Shape of the array is: (4, 3) Index of maximum value of each row of the array is: [2 2 2 2] Index of maximum value of each column of the array is: [1 2 3] |
Объяснение.
В приведенной выше программе мы сначала объявили матрицу размера 4 × 3, и вы также можете увидеть форму матрицы, которая равна(4,3). Затем мы вызвали argmax(), чтобы получить вывод о различных случаях.
В первом случае мы передали arr и axis=1, что возвращает массив размера 4, содержащий индексы всех максимальных элементов из каждой строки. Во втором случае мы передали arr и axis=0 , что возвращает массив размера 3.
Создание массива с помощью np.arange() и последующее использование np. argmax()
Давайте воспользуемся функцией numpy arange(), чтобы создать двумерный массив и найти индекс максимального значения массива.
|
1 2 3 4 5 6 7 8 9 |
# app.py import numpy as np data = np.arange(8).reshape(2, 4) print(data) maxValIndex = np.argmax(data) print('The index of maxium array value is: ') print(maxValIndex) |
Выход:
|
1 2 3 4 5 |
python3 app.py [[0 1 2 3] [4 5 6 7]] The index of maxium array value is: 7 |
Несколько вхождений максимальных значений
В случае многократного вхождения максимальных значений возвращаются индексы, соответствующие первому вхождению.
См. следующий код.
|
1 2 3 4 5 6 7 8 9 |
# app.py import numpy as np data = [[21, 11, 10], [18, 21, 19]] print(data) maxValIndex = np.argmax(data) print('The index of maxium array value is: ') print(maxValIndex) |
Выход:
|
1 2 3 4 |
python3 app.py [[21, 11, 10], [18, 21, 19]] The index of maxium array value is: 0 |
В приведенном выше примере максимальное значение равно 21, но оно встречается в массиве два раза. Таким образом, он вернет индекс первого вхождения. В нашем случае индекс равен 0.
Найдем максимальное значение по заданной оси.
См. следующий код.
|
1 2 3 4 5 6 7 8 9 |
# app.py import numpy as np data = [[21, 11, 10], [18, 21, 19]] print(data) maxValIndex = np.argmax(data, axis=0) print('The index of maxium array value is: ') print(maxValIndex) |
Выход:
|
1 2 3 4 |
python3 app.py [[21, 11, 10], [18, 21, 19]] The index of maxium array value is: [0 1 1] |
В приведенном выше коде мы проверяем максимальный элемент вместе с осью x. Наш вывод — [0, 1, 1], что означает 21 > 18, поэтому он возвращает 0, потому что индекс 21 равен 0. Тогда 11 < 21 означает, что возвращен индекс 21, что равно 1. Тогда 10 < 19, что означает, что вернулся индекс 19, который равен 1.
