设定
考虑numpy数组
a
a = np.arange(30).reshape(2, 3, 5)print(a)[[[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]] [[15 16 17 18 19] [20 21 22 23 24] [25 26 27 28 29]]]
尺寸在哪里?
尺寸和位置由以下内容突出显示
p p p p p o o o o o s s s s s dim 2 0 1 2 3 4 | | | | | dim 0 ↓ ↓ ↓ ↓ ↓ ----> [[[ 0 1 2 3 4] <---- dim 1, pos 0 pos 0 [ 5 6 7 8 9] <---- dim 1, pos 1 [10 11 12 13 14]] <---- dim 1, pos 2 dim 0 ----> [[15 16 17 18 19] <---- dim 1, pos 0 pos 1 [20 21 22 23 24] <---- dim 1, pos 1 [25 26 27 28 29]]] <---- dim 1, pos 2 ↑ ↑ ↑ ↑ ↑ | | | | | dim 2 p p p p p o o o o o s s s s s 0 1 2 3 4
尺寸示例:
通过一些示例,这一点变得更加清楚
a[0, :, :] # dim 0, pos 0[[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]]
a[:, 1, :] # dim 1, pos 1[[ 5 6 7 8 9] [20 21 22 23 24]]
a[:, :, 3] # dim 2, pos 3[[ 3 8 13] [18 23 28]]
sum
的解释sum
和axis
a.sum(0)沿所有切片的总和
dim 0
a.sum(0)[[15 17 19 21 23] [25 27 29 31 33] [35 37 39 41 43]]
和…一样
a[0, :, :] + a[1, :, :][[15 17 19 21 23] [25 27 29 31 33] [35 37 39 41 43]]
a.sum(1)是沿着所有切片的总和
dim 1
a.sum(1)[[15 18 21 24 27] [60 63 66 69 72]]
和…一样
a[:, 0, :] + a[:, 1, :] + a[:, 2, :][[15 18 21 24 27] [60 63 66 69 72]]
a.sum(2)是沿着所有切片的总和
dim 2
a.sum(2)[[ 10 35 60] [ 85 110 135]]
和…一样
a[:, :, 0] + a[:, :, 1] + a[:, :, 2] + a[:, :, 3] + a[:, :, 4][[ 10 35 60] [ 85 110 135]]
默认轴是
-1
指所有轴。或将所有数字相加。
a.sum()435



