需要用到python sum()函数,总结了一下,不对之处烦请指出,谢谢。
1维情况下
(1)输入axis=0
import numpy as np
a=np.array([1,2,3,4,5])
b=a.sum(axis=0)
print(b)
输出结果:15, 也就是一维数组各个元素的和
(2)如果在一维情况下输入axis=1则会报如下错误,也就相当于数组维度越界。
2维情况下
(1)输入axis=0
import numpy as np
b=np.array([[3,7,6],[2,4,5]])
print(b.sum(axis=0))
相当于是:
[[3,7,6],
[2,4,5]]
没一列对应元素相加
3+2,7+4,6+5
输出:
[ 5 11 11]
此时相当于是将每一列对应的元素相加,即3+2=5,7+4=11,6+5=11
(2)输入axis=1
import numpy as np
b=np.array([[3,7,6],[2,4,5]])
print(b.sum(axis=1))
输出为
[16 11]
相当于是3+7+6,2+4+5,即每一行的元素分别相加
相当于是3+7+6,2+4+5,即每一行的元素分别相加
3维情况下
(1)axis=0
import numpy as np
b=np.array([
[[3,7,6],[3,4,5]],
[[2,4,5],[1,1,1]]
])
print(b.sum(axis=0))
输出[[ 5 11 11]
[ 4 5 6]]
类似二维的情况[[3+2,7+4,6+5],[3+1,4+1,5+1]]
(2)axis=1
import numpy as np
b=np.array([
[[3,7,6],[3,4,5]],
[[2,4,5],[1,1,1]]
])
print(b.sum(axis=1))
输出[[ 6 11 11]
[ 3 5 6]]
三维中包含两行两列的二维数组,每一行对应的元素分别相加【[3+3,7+4,6+5],[2+1,4+1,5+1]】
以结果的第一行为例,结果由来是:
[
[ b[0][0][0]+b[0][1][0], b[0][0][1]+b[0][1][1], b[0][0][2]+b[0][1][2] ],
[ b[1][0][0]+b[1][1][0], b[1][0][1]+b[1][1][1], b[1][0][2]+b[1][1][2] ]
]
(3)axis=2
import numpy as np
b=np.array([
[[3,7,6],[3,4,5]],
[[2,4,5],[1,1,1]]
])
print(b.sum(axis=2))
输出[[16 12] ------>3+7+6,3+4+5
[11 3]------>2+4+5,1+1+1]