Numpy之argmax函数

Numpy之argmax函数

一、函数说明

1、用于获取一个numpy数组中最大值的索引值
2、当一组中同时出现几个最大值时,返回第一个最大值的索引值
3、在运算时,相当于剥掉一层中括号,返回一个数组,分为一维和多维
4、剥掉一层中括号之后就成了一个索引值,是一个数,而n维数组剥掉一层中括号后,会返回一个 n-1 维数组,而剥掉哪一层中括号,取决于axis的取值
n维的数组的axis可以取值从 0 到 n-1,其对应的括号层数为从最外层向内递进

numpy.argmax(array, axis)

二、示例

1、一维

import numpy as np

arr = np.array([1, 3, 2, 4, 5])
max_index = np.argmax(arr)
print("Index of maximum value:", max_index)

结果

Index of maximum value: 4

2、二维

这里的arr是一个 2×3 的矩阵,对应axis为:
array axis
2 —— 0
3 —— 1
所以,在axis为0时,剥掉2,返回一个1×3的数组;在axis为1时,剥掉3,返回一个1×2的数组

(1)axis=0

import numpy as np

arr = np.array([[1, 2, 6], [0, 5, 7]])
max_indices_axis = np.argmax(arr, axis=0)
print("Indices of maximum values along axis 0:", max_indices_axis)

结果

Indices of maximum values along axis 0: [0 1 1]
"""
在axis为0时,0层括号置外面提出来,0 层内按 "," 换行对齐,
[[1, 2, 6], 
 [0, 5, 7]]
分别对已经对齐的元素按照 0 层括号外面的逗号分组,这里的
[1, 2, 6], 
[0, 5, 7] 
0 层外面没有逗号,因此是一组
然后按列比较大小即可,返回值为
[argmax(1,0), argmax(2,5), argmax(6,7)]:
[0, 1, 1]
"""

(1)axis=1

import numpy as np

arr = np.array([[1, 2, 6], [0, 5, 7]])
max_indices_axis = np.argmax(arr, axis=1)
print("Indices of maximum values along axis 1:", max_indices_axis)

结果

Indices of maximum values along axis 1: [2 2]
"""
在axis为1时,则从外向内 1 层的中括号,提出来,1层内按 "," 换行对齐
[[1, 
  2, 
  6], 
 [0, 
  5, 
  7]]
分别对已经对齐的元素按照 1 层外逗号分组,[1,2,6]一组,[0, 5, 7]一组。
每组元素进行比较,将 1 层括号变成argmax()
[argmax(1,2,6),
 argmax(0,5,7)]
返回值为
[2, 
 2]
"""

3、多维

以三维为例,计算思路与二维相同。

三维计算之后降维,将返回一个二维数组。

一个m×n×p维的矩阵,
axis为0,舍去m,返回一个 n×p 维的矩阵
axis为1,舍去n,返回一个 m×p 维的矩阵
axis为2,舍去p,返回一个 m×n 维的矩阵

"""
数组shape为 3×2×4
输出结果为:
0 对应shape 2×4
1 对应shape 3×4
2 对应shape 3×2
"""
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容