美文网首页
简单例子说明numpy axis轴

简单例子说明numpy axis轴

作者: miahuang | 来源:发表于2019-03-04 11:29 被阅读0次

    在学写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 axis轴

          本文链接:https://www.haomeiwen.com/subject/mtweuqtx.html