Python中Numpy库中的np.sum(array,axis=0,1,2...)怎么理解?
本文介绍了Python中Numpy库中的np.sum(array,axis=0,1,2...)怎么理解?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
c = np.array([[[0, 1, 2,3],
[4, 5, 6,7]],
[[1, 2, 3,4],
[5,6,7,8]]]
print( c.sum(axis=0))
print( c.sum(axis=1))
print( c.sum(axis=2))
请问三个输出该怎么理解?
解决方案
首先可以把c
可以看作一个2x2的矩阵,而矩阵的每个元素是一个长度为4的数组(例如[0, 1, 2, 3]),因此c是一个三维array。
当参数axis = 0
时,求矩阵每一列上元素的和。例如,对第一列上的两个数组[0, 1, 2, 3]和[1, 2, 3, 4]相加,返回一个新的数组[1, 3, 4, 7],后面的列依次类推。因此最后得到一个新的数组,即:
>>> np.sum(c,axis = 0)
array([[ 1, 3, 5, 7],
[ 9, 11, 13, 15]])
axis = 1
时,对矩阵每一行 上的元素进行求和,同上。
axis = 2
时,对矩阵每个元素进行求和,即对你矩阵中每个列表内的元素求和,返回一个新的2x2矩阵。这听起来有些奇怪,但前提必须是一个三维数组,且axis
的值必须小于数组的维度,否则会出现异常:
ValueError: 'axis' entry is out of bounds
此外,还能通过索引来得到c
中的每个元素,例如:
>>> c[0] #第一行
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
>>> c[0,1] #第一行中的二个列表
array([4, 5, 6, 7])
>>> c[0, 1, 1] #第一行中的二个列表的第二个元素
5
希望答案对你有帮助。
这篇关于Python中Numpy库中的np.sum(array,axis=0,1,2...)怎么理解?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文