简单例子说明numpy axis轴

在学写Tensorflow 代码的时候,不管是在计算过程,还是调用NumPy库,经常出现axis轴计算问题,手敲代码,但是不理解axis 的含义,换了一个程序,又看不懂了.为了便于理解,特此将自己的理解进行梳理.

在 NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions).简单来说,就是看同方向括号的个数,举个例子

      >>>a=np.arange(16).reshape(2,4,2)
      >>>a   
      array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5],
        [ 6,  7]],
       [[ 8,  9],
        [10, 11],
        [12, 13],
        [14, 15]]]
       

a 一共有 3个轴(0,1,2).要指定对轴进行如 sum ,mean ,concatenate等操作,先要弄清楚指定轴之后a 的值.方法很简单,指定n轴,就是从左到右,去掉第n个括号后,剩下的n+1 数组.以sum 为例,进一步说明.

>>>a.sum(axis= 0)
>>>a
array([[ 8, 10],
       [12, 14],
       [16, 18],
       [20, 22]])

axis= 0,计算单位是矩阵,[[ 0, 1],[ 2, 3], [ 4, 5],[ 6, 7]] , [[ 8, 9],[10, 11], [12, 13], [14, 15]],对应位置元素求和,结果的维度去掉第一个数值2, 即(4,2).

>>>a.sum( axis=1)
>>>a
array([[12, 16],
          [44, 48]])

axis=1,计算单位是一维数组,[ 0, 1],[ 2, 3],[ 4, 5],[ 6, 7]的和[12, 16] 与[ 8, 9],[10, 11], [12, 13], [14, 15]的和[44,48],拼接的结果,维度是去掉第二个数值4, 即(2,2).

>>>a.sum(axis=2)
>>>a
array([[ 1,  5,  9, 13],
       [17, 21, 25, 29]])

axis=2,计算的元素的单位是单个元素,0,1和1; 2,3和5; 4,5和9; 6,7和13, [1,5,9,13] 与8,9 和17; 10,11和21;12,13和25; 14,15和29, [17,21,25,29]拼接的结果,维度是去掉第三个数值2, 即(2,4).

理解了轴如何取值,对于Numpy 的其他操作,mean ,concatenate,max等就是计算的问题啦.对于看着还有疑问的童鞋们,建议实践实践,就明白其中的道理了.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,156评论 0 18
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 1,251评论 0 5
  • 一、numpy概述 numpy(Numerical Python)提供了python对多维数组对象的支持:ndar...
    L_steven的猫阅读 3,504评论 1 24
  • 先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutoria...
    舒map阅读 2,602评论 1 13
  • 该内容来源于:https://blog.csdn.net/cxmscb/article/details/54583...
    Sper_CL阅读 1,509评论 0 21