python numpy中cumsum的用法详解

  

Cumsum:计算轴向元素累加和,返回由中间结果组成的数组
  

  

重点就是返回值是“由中间结果组成的数组“
  

  

以下代码在python3.6版本运行成功!
  

  

下面看代码,定义一个2 * 2 * 3的数组,所以其形状是2,2,3,索引分别0、1、2

  

           形状   索引         2   0         2   1         3.   2            

  

代码:
  

        进口numpy np   arr=np.array ([[[1, 2, 3], [8、9、12]], [[1、2、4], [2, 4, 5]]]) # 2 * 2 * 3   打印(arr.cumsum (0))   打印(arr.cumsum (1))   打印(arr.cumsum (2))   之前      

输出结果:
  

  
  

# cumsum (0)
  [[[1,2,3]
  ,[8,9 12]]
  ,
  ,[[2,4,7]
  ,13 17 [10]]]
  # cumsum (1)
  [[[1,2,3]
  ,11 15 [9]]
  ,
  ,[[1,2,4]
  ,[3,6,9]]]
  # cumsum (2)
  [[[1,3,6]
  ,17 29 [8]]
  ,
  ,[[1,3,7]
  ,[2,6 11]]]
  

     

<强>注释:
  

  
      <李>加勒比海盗是一个2 * 2 * 3三维矩阵,索引值为0,1,2   <李> cumsum(0):实现0轴上的累加:以最外面的数组元素为单位,以[[1,2,3],[8、9、12]]为开始实现后面元素的对应累加   <李> cumsum(1):实现1轴上的累加:以中间数组元素为单位,以[1,2,3]为开始,实现后面元素的对应累加   <李> cumsum(2):实现2轴上的累加:以最里面的元素为累加单位,即1为开始,实现后面的元素累加   
  


  

  

下面看一个四维数组2 * 2 * 2 * 4,索引值为0,1,2,3
  代码:
  

        进口numpy np   arr=np.arange (32) .reshape ((2、2、2、4))   打印(arr)   打印(arr.cumsum (0))   打印(arr.cumsum (1))   打印(arr.cumsum (2))   打印(arr.cumsum (3))   之前            加勒比海盗:   [[[[0 1 2 3]   5 6 7 [4]]      [[8 9 10 11]   [12 13 14 15]]]         [[[16 17 18 19]   [20 21日22日23日]]      [[24日25日26日27日]   [28 29 30 31]]]]      

加勒比海盗是一个2 * 2 * 2 * 4四维矩阵,索引值为0,1,2,3
  

  

cumsum(0):实现0轴上的累加即:以最外面数组元素为单位即
  

        [[[0 1 2 3]   5 6 7 [4]]      [[8 9 10 11]   [12 13 14 15]]]   之前      


  

        [[[16 17 18 19]   [20 21日22日23日]]      [[24日25日26日27日]   [28 29 30 31]]]]   之前      

对应位置元素相加起来
  

  

结果:
  

        [[[[0 1 2 3]   5 6 7 [4]]      [[8 9 10 11]   [12 13 14 15]]]         [[[16 18 20 22]   [24 26日28日30]]      [[32 34 36 38]   [40 42 44 46]]]]   之前      

cumsum(1):实现1轴上的累加即:以次外面元素为单位,累加:
  

        ([0 1 2 3)   5 6 7 [4]]   之前      


  

        [[8 9 10 11]   [12 13 14 15]]   之前      


  

        [[16 17 18 19]   [20 21日22日23日]]   之前      


  

        [[24日25日26日27日]   [28 29 30 31]]   之前      

累计过程产生的中间结果要记录到数组中
  

  

所以,结果:
  

        [[[[0 1 2 3]   5 6 7 [4]]      [[8 10 12 14]   [16 18 20 22]]]         [[[16 17 18 19]   [20 21日22日23日]]      [[40 42 44 46]   [48 50 52 54]]]]   之前      

cumsum(2)就对应从[0,1,2,3]数组元素开始实现累加,然后记录中间结果
  

  

cumsum(3)对应的是从最里面最小的数组元素,即从0开始实现累加,记录中间结果
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
  

python numpy中cumsum的用法详解