np.sum()和cumsum()

1,np.sum()函数

不传参数就是所有元素的和,这里不讨论,这里讨论的是有axis参数的情况
先给一个矩阵

import numpy as np
a = np.array([[[1,2,3,2],[1,2,3,1],[2,3,4,1]],[[1,0,2,0],[2,1,2,0],[2,1,1,1]]])

输出一下:

array([[[1, 2, 3, 2],
        [1, 2, 3, 1],
        [2, 3, 4, 1]],
 
       [[1, 0, 2, 0],
        [2, 1, 2, 0],
        [2, 1, 1, 1]]])

首先 这是个三维矩阵,所以这里axis有三种情况 0,1,2
1,axis=0

 a.sum(axis=0)

这个比较简单,先看结果

array([[2, 2, 5, 2],
       [3, 3, 5, 1],
       [4, 4, 5, 2]])

解释 :a[0][m][n]+a[1][m][n]得到结果
2,axis=1

 a.sum(axis=1)

先看结果


array([[ 4,  7, 10,  4], 
      [ 5,  2,  5,  1]])

解释:
a[m][n][x]+a[m][n]][x+1]+a[m][n][x+2]得到结果
可以理解为把最外面的维度,也就是0维度去掉,再求axis=0的情况,也就是两个独立的3*4矩阵求sum,每行的对应位置求和
3,axis=2
先看结果

a.sum(axis=2)
array([[ 8,  7, 10],
       [ 3,  5,  5]])

解释:最内维度各数相加
这个就不再过多解释了

2,cunsum()函数

一维:从第一个元素开始向后逐次相加

import numpy as np
a=[1,2,3,4,5,6,7]
print(np.cumsum(a))

结果

array([ 1,  3,  6, 10, 15, 21, 28, 36, 45, 55, 75, 105])

二维:
有参数 axis=0和axis=1的时候 axis=0的时候是第一行开始依次向下求和
axis=1的时候是第一列一次向右求和

>>>import numpy as np
>>> c=[[1,2,3],[4,5,6],[7,8,9]]
>>> np.cumsum(c,axis=0)
array([[ 1, 2, 3],
    [ 5, 7, 9],
    [12, 15, 18]])
>>> np.cumsum(c,axis=1)
array([[ 1, 3, 6],
    [ 4, 9, 15],
    [ 7, 15, 24]])

3,三维,有axis=0/1/2的情况
axis=0:最外层包着的维度进行向下求和
axis=1:倒数第二层的维度包着的维度向下求和
axis=2:最内层维度依次向后求和
请看示例

>>>import numpy as np
>>> a
[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 20, 30]]]
>>> np.cumsum(a,axis=0)
array([[[ 1, 2, 3],
    [ 4, 5, 6]],
  
    [[ 8, 10, 12],
    [14, 25, 36]]])
>>> np.cumsum(a,axis=1)
array([[[ 1, 2, 3],
    [ 5, 7, 9]],
  
    [[ 7, 8, 9],
    [17, 28, 39]]])
>>> np.cumsum(a,axis=2)
array([[[ 1, 3, 6],
    [ 4, 9, 15]],
  
    [[ 7, 15, 24],
    [10, 30, 60]]])

结束

https://www.jianshu.com/p/a52bde580404

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论