文章目录

  • 1.argmax和max函数区别
  • 2.axis=0/axis=1/axis=-1的区别
  • 3.具体代码分析
  • ---3.1一维数组
  • ---3.2二维数组
  • ---3.3三维数组

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 npn = 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 npa = 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 npa = 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.下面是运行的结果。

不错正合我意!!!
创作不易,喜欢请点赞收藏关注,让我知道你曾经来过~

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

  1. 各种进制转换(二,八,十,十六进制间转换)详解附代码

    进制转换 原理 进制转换是人们利用符号来计数的方法.进制转换由一组数码符号和两个基本因素"基数"与"位权"构成. 基数是指,进位计数制中所采用的数码(数制中用来 ...

  2. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  3. java n%9==0_用C++实现求N!中末尾0的个数的方法详解

    题目描述: 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为1行,n(1≤n≤1000) 输出描述: 输出一个整数 ...

  4. 一文速学数模-时序预测模型(四)二次指数平滑法和三次指数平滑法详解+Python代码实现

    目录 前言 二次指数平滑法(Holt's linear trend method) 1.定义 2.公式 二次指数平滑值: 二次指数平滑数学模型: 3.案例实现 三次指数平滑法(Holt-Winters ...

  5. Java学习笔记二十:Java中的内部类

    Java中的内部类 一:什么是内部类: (1).什么是内部类呢? 内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. (2).那为什么要将一个类定 ...

  6. 【学习笔记】编译Linux内核(下)---KConfig、Makefile详解以及ARM平台Linux内核的编译

    本文主要介绍Linxu2.6的内核配置系统. 如果你浏览一下源代码目录,就可以发现源码目录及其子目录中有很多的KConfig文件和Makefile文件.这些文件什么作用呢?正是这些文件组成了Linux ...

  7. P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

    目录 1.内容概述 2.反向链接技术:一种特殊的P2P场景(通信双方中只有一方位于NAT设备之后) 3.基于UDP协议的P2P打洞技术详解 3.1.原理概述 3.2.典型P2P情景1: 两客户端位于同 ...

  8. 【STM32学习笔记】(15)——窗口看门狗(WWDG)详解

    窗口看门狗(WWDG)概述 窗口看门狗通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障.除非递减计数器的值在T6位变成0前被刷新,否则看门狗电路在达到预置 ...

  9. 学习笔记(13):英特尔®OpenVINO™工具套件中级课程-推理引擎详解内部API

    立即学习:https://edu.csdn.net/course/play/28807/427188?utm_source=blogtoedu 目录 1.推理引擎详解 2.推理引擎API (ie_ap ...

最新文章

  1. Linux系统上用Sigil创建和编辑 EPUB 文件
  2. 双系统(xp+ubuntu)删除ubuntu(好用)
  3. 项目经理主要工作职责
  4. robot连接mysql_robot连接mysql - autocar - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  5. 列表,字典表达式以及三元表达式
  6. 计算机专业笔记本需要小键盘吗,笔记本电脑小键盘数字0不能用
  7. 字符动图_图解redis五种数据结构底层实现(动图哦)
  8. 七牛上传图片html,MWEB+七牛 上传图片
  9. 如果检测到有老版本存在就先卸载老版本才形始新的安装过程
  10. python在线编辑器-在线python编辑器
  11. 现浇板用弹性计算方法_自建房砖混结构现浇楼板配筋的要求和计算方法
  12. vue 动画 抖动效果_css开发常用动画
  13. Quartz-第一篇 认识Quartz
  14. python 文本向量化_TFIDF向量化文档时出现问题?
  15. ios visio流程图_微软visio绘图查看器ios版下载|Microsoft Visio Viewer iphone/ipad版下载 v1.17 - 跑跑车苹果网...
  16. Numpy的终极备忘录
  17. 发布uubox.net客户端工具及其源代码
  18. python转行成数据分析_大数据专业成热门,该如何转行做大数据分析师
  19. 女生适合做软件开发工作吗?优势在哪里?
  20. 系列 | 数仓实践第三篇NO.3『拉链表』

热门文章

  1. [论文学习]A Survey on Transfer Learning
  2. lcDFS1 深度优先遍历1[记忆化搜索]
  3. 【Codeforces Round #570 (Div. 3) A-H 】解题报告
  4. 在宜宾,看见未来中国的产融平台样本
  5. 洛谷 题单2分支结构(freshman锻炼牛犇勿喷)
  6. 信息系统项目采购管理范文
  7. 计算机成绩统计优秀率,在excel中如何计算及格率和优秀率及统计各分数段人数.doc...
  8. python 2个列表相减的2种写法
  9. easyui-03(Tree后端工作)
  10. 一文了解 Go time 包的时间常用操作