📜  Python numpy.argmax()

📅  最后修改于: 2020-10-27 08:13:02             🧑  作者: Mango

Python的numpy.argmax

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

句法:

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

参量

x:类似数组

此参数定义了我们想要知道其最大值的源数组。

轴:int(可选)

此参数定义沿其存在索引的轴,默认情况下,它位于扁平化数组中。

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”
  • 最后,我们尝试print‘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’和轴。
  • 我们试图print‘index_arr’的值。
  • 最后,我们尝试通过两种不同的方法来获取数组的最大值,这与np.argmax()非常相似。

在输出中,它显示了数组中最大元素的索引以及该索引上存在的值。