方法#1:您可以使用专门为此任务制作的np.hsplit -
np.hsplit(arr,20) # creates list of 20 arrays
示例运行 -
1) 输入数组:
In [52]: a = np.random.randint(0,9,(2,6,3))
In [53]: a
Out[53]:
array([[[7, 8, 8],
[7, 7, 1],
[1, 6, 4],
[6, 3, 8],
[4, 7, 4],
[0, 6, 3]],
[[0, 8, 5],
[2, 2, 8],
[6, 0, 7],
[5, 4, 6],
[4, 3, 1],
[8, 6, 6]]])
2) 将axis=1 拆分为3部分,因此每个部分/子数组的长度为(2,2,3) 形状。因此,我们将得到这 3 个数组的列表:
In [54]: b = np.hsplit(a,3)
3) 手动验证这些部分:
In [55]: b[0]
Out[55]:
array([[[7, 8, 8],
[7, 7, 1]],
[[0, 8, 5],
[2, 2, 8]]])
In [56]: b[1]
Out[56]:
array([[[1, 6, 4],
[6, 3, 8]],
[[6, 0, 7],
[5, 4, 6]]])
In [57]: b[2]
Out[57]:
array([[[4, 7, 4],
[0, 6, 3]],
[[4, 3, 1],
[8, 6, 6]]])
方法 #2: 此任务的另一个工具是 np.array_split -
np.array_split(arr,20,axis=1)