NumPy argmax()

The argmax() method returns the index of the largest element of an array.

Example

import numpy as np
array1 = np.array([10, 12, 14, 11, 5])

# return index of largest element (14) maxIndex= np.argmax(array1)
print(maxIndex) # Output: 2

argmax() Syntax

The syntax of argmax() is:

numpy.argmax(array, axis = None, out = None, keepdims = <no value>)

argmax() Arguments

The argmax() method takes four arguments:

  • array - input array
  • axis (optional) - axis along which index is returned (int)
  • out (optional) - array to store the output
  • keepdims (optional) - whether to preserve the input array's dimension (bool)

argmax() Return Value

The argmax() method returns the index of the largest element.


Example 1: argmax() With String

The argmax() method with an array of string or char returns the index of the largest element based on ASCII value.

import numpy as np

array = np.array(['A', 'B', 'G', 'D', 'C'])

# return index of max element 'G' maxIndex = np.argmax(array)
print(maxIndex)

Output

2

Example 2: argmax() With 2D Array

The axis argument defines how we can handle the index of the largest element in a 2D array.

  • If axis = None, the array is flattened and the index of the flattened array is returned.
  • If axis = 0, the index of the largest element in each column is returned.
  • If axis = 1, the index of the largest element in each row is returned.
import numpy as np

array = np.array([[10, 17, 25], [15, 11, 22]])
                  
# return the index of the largest element of the flattened array maxIndex = np.argmax(array)
print('Index of the largest element in the flattened array: ', maxIndex)
# return the index of the largest element in each column maxIndex = np.argmax(array, axis = 0)
print('Index of the largest element in each row (axis 0): ', maxIndex)
# return the index of the largest element in each row maxIndex = np.argmax(array, axis = 1)
print('Index of the largest element in each row (axis 1): ', maxIndex)

Output

Index of the largest element in the flattened array:  2
Index of the largest element in each row (axis 0):  [1 0 0]
Index of the largest element in each row (axis 1):  [2 2]

Example 3: argmax() With 'out' Array

In our previous examples, the argmax() function generated a new array as output.

However, we can use an existing array to store the output using the out argument.

import numpy as np

array1 = np.array([[10, 17, 25], 
                   [15, 11, 22], 
                   [11, 19, 20]])

# create an empty array
array2= np.array([0, 0, 0])

# pass the 'out' argument to store the result in array2 np.argmax(array1, axis = 0, out = array2)
print(array2)

Output

[1 2 0]

Example 4: argmax() With keepdims

When keepdims = True, the dimensions of the resulting array matches the dimension of an input array.

import numpy as np

array1 = np.array([[10, 17, 25], [15, 11, 22]])
print('Shape of original array: ', array1.shape)

maxIndex = np.argmax(array1, axis = 1)
print('\n Without keepdims: \n', maxIndex) print('Shape of array: ', maxIndex.shape)
# set keepdims to True to retain the dimension of the input array maxIndex = np.argmax(array1, axis = 1, keepdims = True)
print('\n With keepdims: \n', maxIndex) print('Shape of array: ', maxIndex.shape)

Output

Shape of original array:  (2, 3)

Without keepdims: 
[2 2]
Shape of array: (2,)

With keepdims: 
[[2]
[2]]
Shape of array: (2, 1)

Without keepdims, the result is simply a one-dimensional array of indices.

With keepdims, the resulting array has the same number of dimensions as the input array.

Similarly, with axis = 1 and keepdims = True, the resulting array has the same number of rows as the input array, but its columns have a single element i.e., the index of the largest element in that column.