定义三维数组a
- a = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
- In [1]: a
- Out[1]:
- array([[[ 1, 2, 3],
- [ 4, 5, 6]],
- [[ 7, 8, 9],
- [10, 11, 12]]])
- In [2]: a.shape
- Out[2]: (2, 2, 3)

我们使用sum函数计算每组的和
当 axis = 0的时候计算方向为第0个维度,取值范围0,1 两个数,即参与求和的元素索引a[0][x][y]+a[1][x][y]
x取值范围0,1 ; y取值范围0,1,2
在不考虑 sxis = 0的维度时 [x][y]的组合有:
x=0 : [0][0],[0][1],[0][2]
x=1 : [1][0],[1][1],[1][2]
最终计算过程如下:
- [
- [ a[0][0][0]+a[1][0][0],a[0][0][1]+a[1][0][1],a[0][0][2]+a[1][0][2] ],
- [ a[0][1][0]+a[1][1][0],a[0][1][1]+a[1][1][1],a[0][1][2]+a[1][1][2] ],
- ]
- 实际执行代码后结果如下:In [3]: np.sum(a,axis=0)
- Out[3]:
- array([[ 8, 10, 12],
- [14, 16, 18]])
当 axis = 1的时候计算方向为第1个维度,取值范围0,1 两个数,即参与求和的元素索引a[x][0][y]+a[x][1][y]
x取值范围0,1 ; y取值范围0,1,2
在不考虑 sxis = 1的维度时 [x][y]的组合有:
x=0 : [0][0],[0][1],[0][2]
x=1 : [1][0],[1][1],[1][2]
最终计算过程如下:
- [
- [ a[0][0][0]+a[0][1][0],a[0][0][1]+a[0][1][1],a[0][0][2]+a[0][1][2] ],
- [ a[1][0][0]+a[1][1][0],a[1][0][1]+a[1][1][1],a[1][0][2]+a[1][1][2] ],
- ]
- 实际执行后的效果In [4]: np.sum(a,axis=1)
- Out[4]:
- array([[ 5, 7, 9],
- [17, 19, 21]])
x取值范围0,1 ; y取值范围0,1
在不考虑 sxis = 2的维度时 [x][y]的组合有:
x=0 : [0][0],[0][1]
x=1 : [1][0],[1][1]
最终计算过程如下:
- [ [ a[0][0][0]+a[0][0][1]+a[0][0][2], a[0][1][0]+a[0][1][1]+a[0][1][2]],
- [ a[1][0][0]+a[1][0][1]+a[1][0][2], a[1][1][0]+a[1][1][1]+a[1][1][2]],]最终执行结果如下:
- In [5]: np.sum(a,axis=2)
- Out[5]:
- array([[ 6, 15],
- [24, 33]])



雷达卡








京公网安备 11010802022788号







