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.

Your builder path starts here. Builders don't just know how to code, they create solutions that matter.

Escape tutorial hell and ship real projects.

Try Programiz PRO
  • Real-World Projects
  • On-Demand Learning
  • AI Mentor
  • Builder Community