NumPy argmin()

The argmin() method returns the index of the smallest element of an array.

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

# return index of smallest element (5) minIndex = np.argmin(array1)
print(minIndex) # Output: 4

Note: In case of more than one occurrence of the smallest element, the index of the first occurrence is returned.


argmin() Syntax

The syntax of argmin() is:

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

argmin() Arguments

The argmin() 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)

argmin() Return Value

The argmin() method returns the index of the smallest element.


Example 1: argmin() With String

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

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

# return index of min element 'A' minArgument = np.argmin(array)
print(minArgument)

Output

0

Example 2: argmin() With 2D Array

The axis argument defines how to handle the index of the smallest 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 smallest element in each column is returned.
  • If axis = 1, the index of the smallest element in each row is returned.
import numpy as np
array = np.array([[10, 17, 25], 
  [15, 11, 22]])
                  
# return the index of the smallest element of the flattened array minIndex = np.argmin(array)
print('Index of the smallest element in the flattened array: ', minIndex)
# return the index of the smallest element in each column minIndex = np.argmin(array, axis = 0)
print('Index of the smallest element in each column (axis 0): ', minIndex)
# return the index of the smallest element in each row minIndex = np.argmin(array, axis = 1)
print('Index of the smallest element in each row (axis 1): ', minIndex)

Output

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

Example 3: argmin() With 'out' Array

In our previous examples, the argmin() 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.argmin(array1, axis = 0, out = array2)
print(array2)

Output

[0 1 2]

Example 4: argmin() 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)

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

Output

Shape of original array:  (2, 3)

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

 With keepdims: 
 [[0]
 [1]]
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 smallest element in that column.