# 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.