在许多情况下,数组的大小过大时,从中找出最大元素需要太长时间。为此,Python的numpy模块提供了一个名为numpy.argmax()的函数。该函数返回最大值的索引以及指定的轴。

2.png

语法:

numpy.argmax(a, axis=None, out=None)

参数

x: array_like

此参数定义了要查找其最大值的源数组。

axis: int(可选)

此参数定义了索引所在的轴,默认为展平的数组。

out: array(可选)

此参数定义了结果将要插入的ndarray。这将是适合存储结果的相同类型和形状。

返回值

此参数定义了一个ndarray,其中包含数组的索引。其形状与x.shape相同,但去掉了沿轴的维度。

示例 1:

Import numpy as np  
x = np.arange(20).reshape(4,5) + 7  
x  
y=np.argmax(a)  
y  

输出:

array([[ 7,  8,  9, 10, 11],
           [12, 13, 14, 15, 16],
           [17, 18, 19, 20, 21],
           [22, 23, 24, 25, 26]])
19

在上面的代码中

  • 我们使用别名np导入了numpy模块。
  • 我们使用np.arange()函数创建了一个数组'x',形状为四行五列。
  • 我们在每个元素中都加了7。
  • 我们声明了变量'y'并将np.argmax()函数的返回值赋值给它。
  • 我们在函数中传递了数组'x'
  • 最后,我们尝试打印变量'y'

输出显示了数组中最大元素的索引。

示例 2:

Import numpy as np  
x = np.arange(20).reshape(4,5) + 7  
y=np.argmax(x, axis=0)  
z=np.argmax(x, axis=1)  
y  
z  

输出:

array([3, 3, 3, 3, 3], dtype=int64)
array([4, 4, 4, 4], dtype=int64)

示例 3:

Import numpy as np  
x = np.arange(20).reshape(4,5) + 7  
indices = np.unravel_index(np.argmax(x, axis=None), x.shape)  
indices  
x[indices] 

输出:

(3, 4)
26

示例 4:

import numpy as np  
a = np.array([[5,2,1], [3,7,9],[0, 4, 6]])  
index_arr = np.argmax(a, axis=-1)  
index_arr  
# Same as np.max(a, axis=-1, keepdims=True)  
result = np.take_along_axis(a, np.expand_dims(index_arr, axis=-1), axis=-1)  
result1  
# Same as np.max(a, axis=-1)  
result = np.take_along_axis(a, np.expand_dims(index_arr, axis=-1), axis=-1).squeeze(axis=-1)  
result2  

输出:

array([[0],
           [2],
           [2]])
array([5, 9, 6])

在上面的代码中

  • 我们使用别名np导入了numpy模块。
  • 我们使用np.array()函数创建了一个多维数组 'a' 。
  • 我们声明了变量'index_arr'并将np.argmax()函数的返回值赋值给它。
  • 我们在函数中传递了数组'a'和轴。
  • 我们尝试打印变量'index_arr'
  • 最后,我们尝试通过两种不同的方式获取数组中的最大值,这两种方式与np.argmax()相似。

输出显示了数组中最大元素的索引以及在这些索引上的值。

标签: NumPy, NumPy教程, NumPy学习, NumPy安装, NumPy入门教程, NumPy进阶教程, NumPy指南, NumPy学习指南, NumPy库, NumPy库学习, NumPy库入门, NumPy库教程, NumPy应用, NumPy库进阶