Python numpy.argmax函数方法的使用

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中argmax方法的使用。

numpy.argmax

numpy.argmax(a, axis=None, out=None)     [source]

沿着一个轴返回最大值的索引。

参数 :

a :array_like

输入数组。

axisint, 可选

默认情况下,索引位于平面数组中,否则沿指定的轴。

out :array, 可选

如果提供,结果将被插入到这个数组中。

它应该是适当的形状和类型。

返回值 :

index_array : int类型的ndarray

索引数组到数组中。 

它的形状与a.shape相同,

但沿轴的尺寸已删除。

Notes

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

例子

>>> 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维数组的最大元素的索引:

>>> 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.max(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.max(x, axis=-1)
>>> np.take_along_axis(x, np.expand_dims(index_array, axis=-1), axis=-1).squeeze(axis=-1)
array([4, 3])
推荐阅读
cjavapy编程之路首页