np.max() 按维度获取最大值解析

话不多说直接上例子:

二维矩阵

a = np.random.random((3,2))

输出:

[[0.47, 0.84 ]
[0.08, 0.12]
[0.77, 0.02]]

不指定维度:
print(np.max(a))   #不指定维度 全部检索数据

输出:
0.84

指定维度:

沿 0 维检索:

print(np.max(a, axis = 0))   #指定维度,沿 0 维检索

输出:
[0.77 0.84]

解析: 按0维的方向比较大小,0维是哪个方向?是3X2矩阵下每个2X1一维向量的方向,如果不清楚可以看我之前的博文:tensor维度的理解
直观的理解就是上下方向,所以比较的路线为:
0.47, 0.08, 0.77 得到最大:0.77
0.84, 0.12, 0.02 得到最大: 0.84

得到的结果[0.77, 0.84]

沿 1 维检索:

print(np.max(a, axis = 1))   #沿 1 维检索

输出:
[0.84, 0.12,0.77]
解析: 按1维的方向比较大小,1维是哪个方向?是每个2X1一维向量内的数值的方向,直观的理解就是左右方向,所以比较的路线为:
0.47, 0.84 得到最大:0.84
0.08, 0.12 得到最大:0.12
0.77, 0.02 得到最大:0.77

得到结果[0.84, 0.12,0.77]

不难发现,实际上这是一个用max()函数进行降维的操作,所以输出的形状和维度有关。

三维矩阵

a = np.random.random((3,2,2))
print(a)

输出:
[
[[0.77, 0.42]
[0.76, 0.75]]

[[0.84, 0.69]
[0.24, 0.31]]

[[0.77, 0.22]
[0.41, 0.28]]
]

不指定维度:
print(np.max(a))   #不指定维度 全部检索数据

输出:
0.84

指定维度:

沿 0 维检索:

print(np.max(a, axis = 0))   #指定维度,沿 0 维检索

输出:
[[0.84, 0.69]
[0.76, 0.75]]

解析: 按0维的方向比较大小,可以理解为按0维方向用max()进行降维或者压缩,位置一一对应,所以结果肯定是2X2的矩阵。比较路线是:
0.77, 0.84, 0.77 得到最大:0.84 ,位置是[0,0]
0.42, 0.69, 0.22 得到最大:0.69 ,位置是[0,1]
0.76, 0.24, 0.41 得到最大:0.76 ,位置是[1,0]
0.75, 0.31, 0.28 得到最大:0.75,位置是[1,1]

沿 1 维检索:

print(np.max(a, axis = 1))   	#沿 1 维检索

输出:
[[0.77, 0.75]
[0.84, 0.69]
[0.77, 0.28]]

解析: 按1维的方向比较大小,一样的原理,按1维方向用max()进行降维或者压缩,不做过多解释。

沿 2 维检索:

print(np.max(a, axis = 2))   	#沿 2 维检索

输出:
[[0.77, 0.76]
[0.84,0.31]
[0.77, 0.41]]

[2020/6/18 add]

为了更直观和好理解,添加一个附带图片的例子:

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
`np.argmax(predict)` 是一个 NumPy 函数,它的作用是返回数组中最大值的索引。具体来说,它会返回一个数组中第一个最大值出现的位置。如果有多个最大值,它只返回第一个最大值的位置。`predict` 可以是一维或多维数组,`np.argmax(predict)` 返回的索引也是一个整数或数组,具体决于 `predict` 的维度最大值的位置。 通常情况下,`np.argmax(predict)` 用于分类问题中的预测结果。假设 `predict` 是一个形状为 `(batch_size, num_classes)` 的数组,其中 `batch_size` 表示批次大小,`num_classes` 表示分类数。那么,`np.argmax(predict, axis=1)` 将返回一个长度为 `batch_size` 的一维数组,表示每个样本的预测分类。数组中的每个元素是一个整数,表示对应样本的预测分类的索引。例如,如果 `np.argmax(predict, axis=1)` 返回 `[1, 2, 0, 1]`,则表示第一个样本的预测分类为 1,第二个样本的预测分类为 2,以此类推。 需要注意的是,`np.argmax(predict)` 只返回最大值的位置,而不是最大值本身。如果需要获取最大值,可以使用 `np.max(predict)` 函数。如果需要同时获取最大值和位置,可以使用 `np.max(predict)` 和 `np.argmax(predict)` 组合起来使用。例如,可以这样获取最大值和位置: ```python max_value = np.max(predict) max_index = np.argmax(predict) ``` 这样可以同时获取 `predict` 数组中的最大值和它在数组中的位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专治跌倒扭伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值