numpy.sum()方法的axis参数
2018-10-15 本文已影响103人
juriau
参考https://blog.csdn.net/fencer911/article/details/51705160?utm_source=copy
对于三维数据
>>> import numpy as np
>>> b=np.arange(24).reshape(2,3,4)
>>> b
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
>>> b.sum(axis=0)
array([[12, 14, 16, 18],
[20, 22, 24, 26],
[28, 30, 32, 34]])
>>> b.sum(axis=0).shape
(3, 4)
>>> b.sum(axis=1)
array([[12, 15, 18, 21],
[48, 51, 54, 57]])
>>> b.sum(axis=1).shape
(2, 4)
>>> b.sum(axis=2)
array([[ 6, 22, 38],
[54, 70, 86]])
>>> b.sum(axis=2).shape
(2, 3)
>>> b.sum()
276
我们可以清晰的看到
b.sum(axis=0) 等同与 b[0,:,:]+b[1,:,:]
b.sum(axis=1) 等同与 b[:,0,:]+b[:,1,:]+b[:,2,:]
b.sum(axis=2) 等同与 b[:,:,0]+b[:,:,1]+b[:,:,2]+b[:,:,3]
对于二维数据
>>> b = np.arange(4).reshape(2,2)
>>> b
array([[0, 1],
[2, 3]])
>>> b.sum(axis=0)
array([2, 4])
>>> b.sum(axis=1)
array([1, 5])
b.sum(axis=0) 等同与 b[0,:]+b[1,:]
b.sum(axis=1) 等同与 b[:,0]+b[:,1]
简单的说,axis=0行向量相加,axis=1列向量相加。