NumPy numpy.argmax的使用

NumPy numpy.argmax的使用

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

NumPy numpy.argmax的使用

语法

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

参数

x: 类似数组

此参数定义了我们想要获取最大值的源数组。

axis: 整数(可选)

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

out: 数组(可选)

此参数定义了要插入结果的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()函数非常相似。

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程