在此记录一下三维数据切片操作
先看一个例子:
a = np.array([[[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, 30, 31, 32], [33, 34, 35, 36]],
])
print(a.shape)
print('a:\n', a)
输出:
a.shape:(3, 3, 4)
a:
[[[ 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 30 31 32]
[33 34 35 36]]]
下面进行切片:
case1:
a[:, -1, :]
此语句的含义:第一个 ‘ : ’ 指的是a.shape(3, 3, 4)的第一维所有数据都保留,
‘ -1 ’指的是只保留a.shape(3, 3, 4)第二维的最后一个数据,即每一个小分块的最后一行,
‘ :’指的是保留a.shape(3, 3, 4)第三维的所有数据,即保留每一个小分块的所有列
看下运行结果:
a[:, -1, :]:
[[ 9 10 11 12]
[21 22 23 24]
[33 34 35 36]]
case2:
同理,下面语句是取a的 第一维的最后一行,第二维的最后一行,第三维的所有列
a[-1, -1, :]:
[33 34 35 36]