Bootstrap

【numpy求和】numpy.sum()求和

numpy.sum(a, axis=None, dtype=None, out=None, keepdims=, initial=)[source])用于计算array元素的和.

python中常用的numpy进行数学计算,其中array的求和运算分为两种,一种是调用numpy.array自身的sum()方法,另一种是利用numpy的内建函数numpy.sum()使用。(tips:python从0开始计数axis=0对应第一个维度)

#example
import numpy as np
x = np.random.rand(2,3,4)    #生成三维随array
print("This is a 2*3rows 4cols array\n",x)
'''
>>> This is a 2*3rows 4cols array
[[[ 0.88264952  0.12446208  0.82166137  0.31747846]
  [ 0.51436626  0.03051283  0.46987831  0.64086531]
  [ 0.14819094  0.6395191   0.21753309  0.61340538]]

 [[ 0.0878878   0.5317064   0.65523138  0.704961  ]
  [ 0.51081521  0.88710145  0.92958269  0.89587262]
  [ 0.60233393  0.26146419  0.26584161  0.0823285 ]]]
'''
print('instance method:',x.sum())
print('numpy function:',np.sum(x))
'''
>>> 'instance method:', 11.835649415181807
>>> 'numpy function:', 11.835649415181807
'''

#对特定的轴求和
print('First axis sum',x.sum(axis=0))
'''
>>> 'First axis sum',   #第一维是轴0,对前后两页array加和得到3*4的array输出
array([[ 0.97053732,  0.65616848,  1.47689275,  1.02243946],
       [ 1.02518147,  0.91761428,  1.399461  ,  1.53673793],
       [ 0.75052486,  0.90098329,  0.4833747 ,  0.69573388]])
'''
print('Second axis sum',x.sum(axis=1))
'''
>>> 'Second axis sum',   #第二维是轴1,将每列的三行进行sum(对行求sum),得到2*4的输出
array([[ 1.54520672,  0.79449401,  1.50907277,  1.57174914],
       [ 1.20103694,  1.68027204,  1.85065568,  1.68316212]])
'''
print('Third axis sum',x.sum(axis=2))
'''
>>> 'Third axis sum',    #第三维是轴2,有4个数,将每行四个数加和(对列求sum),得到2*3输出
array([[ 2.14625142,  1.65562271,  1.6186485 ],
       [ 1.97978658,  3.22337197,  1.21196823]])
'''


#对多个轴求和
print('axis1,2 sum:',x.sum(axis=(1,2)))
'''
>>> 'axis1,2 sum:      #对第二维(axis=1)和第三维(axis=2)求和,归在第一维(axis=0)上
array([ 5.42052263,  6.41512678]) 
'''

在这里插入图片描述pic from pexels


ref:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.sum.html
https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html
https://blog.csdn.net/Leekingsen/article/details/76242244
https://blog.csdn.net/addmana/article/details/78472608

;