numpy.argmin#

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

沿轴返回最小值的索引。

参数:
aarray_like

输入数组。

axisint, 可选

默认情况下,索引进入扁平化数组,否则沿指定的轴。

outarray, 可选

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

keepdimsbool, 可选

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

版本 1.22.0 中的新功能。

返回值:
index_array整数类型的 ndarray

数组中索引的数组。它与 a.shape 形状相同,但去除了沿 axis 维度。如果 keepdims 设置为 True,则 axis 的大小将为 1,并且生成的数组将与 a.shape 形状相同。

另请参阅

ndarray.argmin, argmax
amin

给定轴上的最小值。

unravel_index

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

take_along_axis

应用 np.expand_dims(index_array, axis) 从 argmin 到数组,就像调用 min 一样。

注释

如果出现多个最小值,则返回对应于第一次出现的索引。

示例

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

N 维数组的最小元素的索引

>>> ind = np.unravel_index(np.argmin(a, axis=None), a.shape)
>>> ind
(0, 0)
>>> a[ind]
10
>>> b = np.arange(6) + 10
>>> b[4] = 10
>>> b
array([10, 11, 12, 13, 10, 15])
>>> np.argmin(b)  # Only the first occurrence is returned.
0
>>> x = np.array([[4,2,3], [1,0,3]])
>>> index_array = np.argmin(x, axis=-1)
>>> # Same as np.amin(x, axis=-1, keepdims=True)
>>> np.take_along_axis(x, np.expand_dims(index_array, axis=-1), axis=-1)
array([[2],
       [0]])
>>> # 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([2, 0])

keepdims 设置为 True

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