numpy.argmax函数的相关用法

numpy.argmax(a, axis=None, out=None)
返回沿轴axis最大值的索引。
注释:
a:array_like数组
axis:int类型,轴
out:(可选)如果提供,结果以合适的形状和类型被插入到此数组中`
下面我将用代码给大家详细介绍该函数的用法

import numpy as np
#一维数组用法
a = np.arange(10)
print(a)
print("*"*100)
print(np.argmax(a))#此时等价axis=0
print(np.argmax(a, axis=0))

[0 1 2 3 4 5 6 7 8 9]
****************************************************************************************************
9
9
import numpy as np
#二维数组用法
a = np.array([[1, 5, 5, 2],
              [4, 6, 2, 8],
              [3, 7, 9, 1]])
print(a)
print("*"*100)
print(np.argmax(a, axis=0)) #每一列的最大值的索引 返回一个数组
print(np.argmax(a))         #不加axis则是寻找全数组的最大值索引  返回一个int值 
print(np.argmax(a, axis=1)) #每一行的最大值的索引 返回一个数组

[[1 5 5 2]
 [4 6 2 8]
 [3 7 9 1]]
****************************************************************************************************
[1 2 2 1]
10
[1 3 2]
import numpy as np
#三维数组的用法
a = np.array([
    [
        [1, 5, 5, 2],
        [3, -6, 2, 8],
        [-3, 7, -9, 1]
    ],
    [
        [-1, 5, -5, 2],
        [9, 6, 2, 8],
        [3, 7, 3, 1]
    ]
])
print(a)
print(a.shape)           #这是个2*3*4的数组
print("*"*100)
print(np.argmax(a))      #返回整个数组的最大值,相当把这个数组变成一维数组,再去寻找其最大值索引
print(np.argmax(a, axis=0))  #大数组中两个小数组相对应的值进行比较 返回较大值的索引
print(np.argmax(a, axis=1))  #两个小数组中分别按列进行比较,返回较大值的索引
print(np.argmax(a, axis=2))  #两个小数组中分别按行进行比较,返回较大值的索引

[[[ 1  5  5  2]
  [ 3 -6  2  8]
  [-3  7 -9  1]]

 [[-1  5 -5  2]
  [ 9  6  2  8]
  [ 3  7  3  1]]]
(2, 3, 4)
****************************************************************************************************
16
[[0 0 0 0]
 [1 1 0 0]
 [1 0 1 0]]
[[1 2 0 1]
 [1 2 2 1]]
[[1 3 1]
 [1 0 1]]

该函数的用法我就给大家介绍到这里,谢谢大家

上一篇:(y_hat.argmax(dim=1) ==lable).sum().cpu().item()


下一篇:Tensorflow中的维度问题