argmax

argmax:"返回沿轴的最大值的索引"。argmax "返回沿轴的最大值的索引"。

根据Jason Brownlee在《机器学习大师》一文中的说法。(https://machinelearningmastery.com/argmax-in-machine-learning

Argmax在机器学习中最常用于寻找具有最大预测概率的类。
在应用机器学习中,使用argmax最常见的情况是寻找一个数组的索引,从而获得最大的值。

如果我们考虑预测类成员的概率,argmax函数可以确定一个数组的索引位置,其中包含最大值,因此,预测概率最高。这对于机器学习显然是有用的。

使用argmax()

单一维度

import numpy as np
 
a = [[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]]
max_idx = np.argmax(a)
print(max_idx)
9

这个输出符合你的预期吗?

如果你记得argmax返回的是一个索引,而不是一个值,而且索引是从0开始的,我们看到我们被返回了索引9--这实际上是第十个位置--它保存着值'10',即数组中的最大值。

有意义吗?

多维度

import numpy as np
 
a = [[ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ]]
max_idx = np.argmax(a)
print(max_idx)
9

现在我们有一个二维数组。我们没有传递一个轴参数,所以argmax的默认行为是将多维数组平铺成一个单维,并返回这个平铺后的数组中最大值的索引。

指定一个轴

首先,回顾一下,轴0指的是行,而轴1指的是列。

让我们看看当我们把axis=0传给argmax时会发生什么。

import numpy as np
 
a = [[ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ]]
max_idx = np.argmax(a, axis=0)
print(max_idx)
array([1, 1, 1, 1, 1])

axis=0,对于数组中的每一列,Numpy都会报告这个最大值出现在哪一行。

即,竖着看,找到每一列最大值 ()

稍微有点反直觉,可以理解为指定哪个维度,哪个维度动

也就是说

第一次 比较的是 [0,1] [1,1] [2,1] [3,1] ...

第一次 比较的是 [0,2] [1,2] [2,2] [3,2] ...

import numpy as np
a = [[ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ]]
max_idx = np.argmax(a, axis=0)
print(max_idx)
array([4,4])

axis=0,横着看,找到每一行的最大值

稍微有点反直觉,可以理解为指定哪个维度,哪个维度动

也就是说

第一次 比较的是 [1,1] [1,2] [1,3] [1,4] ...

第一次 比较的是 [2,1] [2,2] [2,3] [2,4] ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值