Numpy argmax() 函数
Numpy argmax() 函数用于查找数组中沿指定轴的最大值的索引。它对于需要确定数据结构(例如数组或矩阵)中最大值位置的任务特别有用。
Numpy argmax() 函数适用于一维和多维数组。当该函数用于多维数组时,我们需要指定查找最大值索引的轴。
如果数组中的最大元素出现多次,numpy.argmax() 函数将返回最大值首次出现的索引。
语法
以下是 Numpy argmax() 函数的语法 -
numpy.argmax(a, axis=None, out=None, *, keepdims=<no value>)
参数
以下是 Numpy argmax() 函数的参数 -
- a:用于计算最大值的输入数组需要找到最大值索引。
- out(可选):如果提供,结果将放置在此输出数组中。其形状和类型必须与预期输出相同。
- keepdims:如果设置为 True,则缩小的轴将保留在结果中,尺寸为 1,这意味着它们不会被移除。这可确保结果的维数与原始数组相同,这对于广播非常有用。
- axis(可选):沿该轴查找最大值的索引。
- None(默认):查找展平数组中最大值的索引。
- axis 可以是整数(例如,在二维数组中,0 表示行,1 表示列)。
返回类型
此函数返回一个整数(对于一维数组)或一个整数数组(对于多维数组),表示沿指定轴的最大值的索引。
示例
以下是使用 Numpy argmax() 函数查找一维数组中最大值索引的基本示例−
import numpy as np array = np.array([10, 20, 5, 30, 15]) max_index = np.argmax(array) print("数组:", array) print("最大值的索引:", max_index)
输出
数组:[10 20 5 30 15] 最大值的索引:3
示例:使用 axis 参数
axis 参数用于在多维数组中查找沿特定轴的最大值索引。
在下面的示例中,我们通过设置在 numpy.argmax() 函数中,将 axis 参数分别设置为 1(按行)和 0(按列)。-
import numpy as np array_2d = np.array([[85, 3, 7], [2, 8, 6], [66, 50, 9]]) # 查找行中的最大索引 max_index_row = np.argmax(array_2d, axis=1) # 查找列中的最大索引 max_index_col = np.argmax(array_2d, axis=0) print("二维数组:") print(array_2d) print("行中最大值的索引:", max_index_row) print("沿列的最大值索引:", max_index_col)
输出
二维数组: [[85 3 7] [ 2 8 6] [66 50 9]] 沿行的最大值索引:[0 1 0] 沿列的最大值索引:[0 2 2]
示例:展平数组
当 axis=None 时,数组将被展平,并返回展平数组中最大值的索引。
以下示例通过先展平二维数组来查找其中的最大元素 -
import numpy as np array_2d = np.array([[10, 20, 30], [5, 25, 15], [40, 35, 50]]) max_index_flat = np.argmax(array_2d) print("二维数组:") print(array_2d) print("展平数组中最大值的索引:", max_index_flat)
输出
二维数组: [[10 20 30] [ 5 25 15] [40 35 50]] 平化数组中最大值的索引:8
示例:使用 out 参数
out 参数可用于将结果存储在预分配的数组中。输出数组必须具有适当的形状和数据类型。
import numpy as np array = np.array([4, 12, 7, 18, 9]) out_array = np.empty((), dtype=int) np.argmax(array, out=out_array) print("数组:", array) print("最大值的索引(使用 out 函数):", out_array)
输出
数组:[ 4 12 7 18 9] 最大值的索引(使用 out 函数):3
示例:最大值多次出现
Numpy argmax() 函数返回索引如果最大值在数组中出现多次,则返回最大值首次出现的索引。
以下示例中,值 100 出现了两次,但 numpy.argmax() 函数返回的是其首次出现的索引 -
import numpy as np array = np.array([4, 59, 100, 76, 19, 100]) max_Value = np.argmax(array,) print("数组:", array) print("最大值的索引:", max_Value)
输出
数组:[ 4 59 100 76 19 100] 最大值的索引:2