Numpy学习笔记(二):argmax参数中axis=0,axis=1,axis=-1详解附代码

简介: 本文解释了NumPy中`argmax`函数的`axis`参数在不同维度数组中的应用,并通过代码示例展示了如何使用`axis=0`、`axis=1`和`axis=-1`来找到数组中最大值的索引。

1.argmax和max函数区别

argmax()返回的是函数取到最大值时的参数t,也就是说返回最大值的索引
max返回的是函数的最大值

2.axis=0/axis=1/axis=-1的区别

我们考虑它们的时候千万不要用行和列的思想去考虑axis,因为行和列是没有方向的。

根据官方的说话,axis=1表示数组的变化是横向的,而体现出来的是列的增加或者减少。也就是说如果对于axis=1,求平均的话,那么是从左到右横向求平均,而axis=0的话就是纵向求平均,只是方向发生了改变而已。
对于axis=-1,如果在二维数组中,axis=-1就是和axis=1是一样的,指向的是倒数第一个

原始矩阵的shape=[3,4,5],取axis=0再进行操作后,得到的矩阵shape=[4,5]。同样的,取axis=1再进行操作后,得到的矩阵shape=[3,5]。取axis=-1(axis=2)再操作后,shape=[3,4]。掌握这一点,能有利于你在神经网络中的变换或是数据操作中明确矩阵变换前后的形状,从而加快对模型的理解。

3.具体代码分析

—3.1一维数组

具体代码

import numpy as np

n = np.arange(5)
a = np.argmax(n)
b = np.max(n)
print(n)
print(a)
print(b)

ar = np.array([1,3,2,5,4])
d = np.argmax(ar)
e = ar.argmax(axis=0)
print(ar)
print(d)
print(e)

运行结果
在这里插入图片描述
从一维数组中不太明显能够看出这三者的区别,从二维和三维就更容易理解了。

—3.2二维数组

具体代码:

**import numpy as np

# a = np.arange(6).reshape([3,2])
a = np.array([[2,3],[5,4],[0,1]])
b = np.argmax(a) # 没有参数时,是默认将数组展平
c = np.argmax(a,axis=0) # 从垂直方向看,2,5,0为一排,其中最大的是5,也就是说5的索引为1;3,4,1返回为1也是一样的道理
d = np.argmax(a,axis=1) # 从水平方向看,2和3是3更大些,所以返回为1;5和4是5更大,返回为0;0和1是1更大,返回为1
e = np.argmax(a,axis=-1) # 二维数组的axis=-1相当于axis=1,表示的是倒数第一个

print(a)
print(b)
print(c)
print(d)
print(e)**
  • axis=0,从垂直方向看,2,5,0为一排,其中最大的是5,也就是说5的索引为1;3,4,1返回为1也是一样的道理
  • axis=1,从水平方向看,2和3是3更大些,所以返回为1;5和4是5更大,返回为0;0和1是1更大,返回为1
  • 二维数组的axis=-1相当于axis=1,表示的是倒数第一个
  • 这里其实表示就很清楚了,也就是不同方向指向最大的值的索引。

—3.3三维数组

具体代码

import numpy as np

a = np.arange(24).reshape([4,3,2]) # 打印形状,可以理解为长为4,宽为3,通道数为2的图片。
b = a[:,:,0]  # 第0通道
c = a[:,:,1]  # 第1通道
print("原矩阵\n",a)
print('第0通道\n',b)
print('第1通道\n',c)

运行结果
在这里插入图片描述
这个三维数组,可以把它理解为两张大饼叠在一起,或是两个图层叠在一起。根据两个不同的通道叠加在一起就形成了这个三维数组。下面是axis不同的值的代码结果

具体代码

import numpy as np

a = np.arange(24).reshape([4,3,2]) # 打印形状,可以理解为长为4,宽为3,通道数为2的图片。
b = np.argmax(a,axis=0) 
c = np.argmax(a,axis=1) 
d = np.argmax(a,axis=-1)
e = np.argmax(a,axis=2)

print('原矩阵\n',a)
print('axis=0\n',b)
print('axis=1\n',c)
print('axis=-1\n',d)
print('axis=2\n',e)

运行结果
在这里插入图片描述
注意这里的axis=-1(和axis=2相同,因为是最后一位))返回的是最大的通道数的索引,对应位置进行比较很明显channel1每一位置都比channel0更大,所以这里面每一位置都返回的是1,也就是通道1的索引。看下图更具体

在这里插入图片描述
在这里插入图片描述
若想改变某个通道里的一个数字可用a[0,0,0] = 100(注意这里改变的是0通道的值)
原矩阵就变成了
在这里插入图片描述
所以此时1通道的1肯定比0通道的100更小,毋庸置疑通过axis=-1返回的值肯定为0.下面是运行的结果。
在这里插入图片描述
不错正合我意!!!
创作不易,喜欢请点赞收藏关注,让我知道你曾经来过~

目录
相关文章
|
1天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1517 4
|
29天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
5天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
483 17
|
1天前
|
存储 SQL 关系型数据库
彻底搞懂InnoDB的MVCC多版本并发控制
本文详细介绍了InnoDB存储引擎中的两种并发控制方法:MVCC(多版本并发控制)和LBCC(基于锁的并发控制)。MVCC通过记录版本信息和使用快照读取机制,实现了高并发下的读写操作,而LBCC则通过加锁机制控制并发访问。文章深入探讨了MVCC的工作原理,包括插入、删除、修改流程及查询过程中的快照读取机制。通过多个案例演示了不同隔离级别下MVCC的具体表现,并解释了事务ID的分配和管理方式。最后,对比了四种隔离级别的性能特点,帮助读者理解如何根据具体需求选择合适的隔离级别以优化数据库性能。
179 1
|
8天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
21天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
8天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
442 4
|
7天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
313 2
|
23天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
25天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2608 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析