numpy.argmax#

numpy.argmax(a, axis=None, out=None, *, keepdims=<no value>)[source]#

沿轴返回最大值的索引。

参数:
a类数组对象

输入数组。

axisint, optional

默认情况下,索引是针对展平后的数组,否则是沿指定的轴。

outarray, optional

如果提供,结果将插入到此数组中。它应该具有适当的形状和数据类型。

keepdimsbool,可选

如果设置为 True,则被缩减的轴将作为大小为一的维度保留在结果中。使用此选项,结果将能正确地与数组进行广播。

New in version 1.22.0。

返回:
index_arrayndarray of ints

索引数组。它具有与 a.shape 相同的形状,并且 axis 维度已被移除。如果 keepdims 设置为 True,则 axis 的大小将为 1,结果数组的形状与 a.shape 相同。

另请参阅

ndarray.argmax, argmin
amax

沿给定轴的最大值。

unravel_index

将扁平索引转换为索引元组。

take_along_axis

将 argmax 的 np.expand_dims(index_array, axis) 应用于数组,就像通过调用 max 一样。

备注

如果存在多个最大值,则返回第一个出现的最大值的索引。

示例

>>> import numpy as np
>>> a = np.arange(6).reshape(2,3) + 10
>>> a
array([[10, 11, 12],
       [13, 14, 15]])
>>> np.argmax(a)
5
>>> np.argmax(a, axis=0)
array([1, 1, 1])
>>> np.argmax(a, axis=1)
array([2, 2])

N 维数组最大元素的索引

>>> a.flat[np.argmax(a)]
15
>>> ind = np.unravel_index(np.argmax(a, axis=None), a.shape)
>>> ind
(1, 2)
>>> a[ind]
15
>>> b = np.arange(6)
>>> b[1] = 5
>>> b
array([0, 5, 2, 3, 4, 5])
>>> np.argmax(b)  # Only the first occurrence is returned.
1
>>> x = np.array([[4,2,3], [1,0,3]])
>>> index_array = np.argmax(x, axis=-1)
>>> # Same as np.amax(x, axis=-1, keepdims=True)
>>> np.take_along_axis(x, np.expand_dims(index_array, axis=-1), axis=-1)
array([[4],
       [3]])
>>> # Same as np.amax(x, axis=-1)
>>> np.take_along_axis(x, np.expand_dims(index_array, axis=-1),
...     axis=-1).squeeze(axis=-1)
array([4, 3])

keepdims 设置为 True

>>> x = np.arange(24).reshape((2, 3, 4))
>>> res = np.argmax(x, axis=1, keepdims=True)
>>> res.shape
(2, 1, 4)