https://blog.csdn.net/sky_kkk/article/details/79725646

numpy中axis取值的说明
首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维数越高,则axis可取的值越大,数组n维时,axis=0,1,…,n。为了方便下面的理解,我们这样看待:在numpy中数组都有着[]标记,则axis=0对应着最外层的[],axis=1对应第二外层的[],以此类推,axis=n对应第n外层的[]。
下面开始从axis=0,axis=1这两个例子开始,深入透彻的理解numpy中axis的用法。
axis = 0表示对最外层[]里的最大单位块做块与块之间的运算,同时移除最外层[]:
a= np.array([1,2,3])   
a.sum(axis = 0)
>>>6
123
因为只有一层[],所以直接对这一层里的最大单位快1,2,3做运算;
做完加法后本应是[6],但是移除最外层[]后,[]不存在了,所以返回的是6。
a= np.array([[1,2],[3,4]]) 
a.sum(axis = 0)
>>>array([4, 6])
123
有两层[],最外层[]里的最大单位块分别为[1,2],[3,4],对这两个单位块做块与块之间的运算,[1,2]+[3,4] = [4, 6];
做完加法后本应是[[4, 6]],但是移除最外层[]后,原来的两层[]变成一层[],所以返回结果为 [4, 6]。
np.array([[[1,2],[3,4]],[[11,12],[13,14]]])
a.sum(axis = 0)
>>>array([[12, 14], [16, 18]])
123
有三层[],最外层[]里的最大单位块分别为[[1,2],[3,4]],[[11,12],[13,14]],对这两个单位块做块与块之间的运算,[[1,2],[3,4]]  +  [[11,12],[13,14]]  = [[12, 14], [16, 18]];
做完加法后本应是[[[12, 14], [16, 18]]],但是移除最外层[]后,原来的三层[]变成两层[],所以返回结果为[[12, 14], [16, 18]];
axis= 1表示对第二外层[]里的最大单位块做块与块之间的运算,同时移除第二外层[]:
a= np.array([1,2,3])   
a.sum(axis = 1)
>>>ValueError: 'axis' entry is out of bounds
123
因为只有一层[],axis取值只有一个,为0.
a= np.array([[1,2],[3,4]]) 
a.sum(axis = 1)
>>>array([3, 7])
123
有两层[],第二外层[]里的最大单位块有两组(因为有两个第二外层[]),第一组是1,2,第二组是3,4,分别对这两个单位块做块与块之间的运算,第一组结果为1+2=3,第二组结果为3+4=7;
做完加法后本应是[[3],[7]],但是**移除第二外层[]**后,原来的两层[]变成一层[],所以返回结果为[3, 7]。
np.array([[[1,2],[3,4]],[[11,12],[13,14]]])
a.sum(axis = 1)
>>>array([[ 4,  6], [24, 26]])
123
有三层[],第二外层[]里的最大单位块有两组(因为有两个第二外层[]),第一组是[1,2],[3,4],第二组是[11,12],[13,14],分别对这两个单位块做块与块之间的运算,第一组结果为[1,2]+[3,4] = [ 4,  6],第二组结果为[11,12]+[13,14] = [24, 26]
做完加法后本应是[[[ 4,  6]], [[24, 26]]],但是**移除第二外层[]**后,原来的三层[]变成两层[],所以返回结果为[[ 4,  6], [24, 26]]
axis = 3,4,5也如此分析
看懂了这些说明,相信你对axis已经有了深入的理解,以后再也不用怕高维数组关于axis的运算了!

最新文章

  1. iOS 阶段学习第十天笔记(字符串操作)
  2. [办公自动化]一次制作、多场合多次使用的PPT
  3. AJAX-----13HTML5中新增的API---FormData
  4. ACM Computer Factory(dinic)
  5. spring常用的工具类
  6. Python设计模式——模版方法模式
  7. Swift - 06 - 数值类型转换和类型别名
  8. SQL server sysobjects表说明
  9. DataTable中执行DataTable.Select("条件"),
  10. EasyUI Editable Tree
  11. js版九宫格拼图与启发式搜索(A*算法)
  12. Unable to determine the device handle for GPU 0000:01:00.0: GPU is lost.问题排坑
  13. Reac全家桶笔记
  14. QQ浏览器中时区bug
  15. HR_Hash Tables: Ransom Note
  16. 算法 - 链的操作(三) - 返回倒数第k个节点(no.23)
  17. ceph 集群故障恢复
  18. leetcode 字符串类型题
  19. Chapter 5 软件工程中的形式化方法
  20. c++ mysql connector 学习汇总

热门文章

  1. 反射之关于MethodInfo的使用
  2. nodejs中的_filename和_dirname
  3. 设计的一些kubernetes面试题
  4. python检测远程udp端口是否打开的代码
  5. SQL LISTAGG 合并行
  6. php环境Unknown column '*' in 'field list'解决方案
  7. jar - 操作jar包的工具
  8. golang版本管理工具GO111MODULE
  9. 191017 虚拟机centos修改IP
  10. k8s包管理工具helm - 介绍和安装