Python 将numpy数组拆分为两个大小不同的子集

Python 将numpy数组拆分为两个大小不同的子集,python,arrays,numpy,Python,Arrays,Numpy,我有一个形状为(400,3,3,3)的numpy数组,我想把它分成两部分,所以我会得到像(100,3,3,3)和(300,3,3)这样的数组 我在玩numpysplit方法,例如: subsets = np.array_split(arr, 2) 这给了我想要的,但它将原始数组分成了大小相同的两半,我不知道如何指定这些大小。使用一些索引(我想)可能很容易,但我不确定如何操作。如我在评论中所述,您可以使用省略号符号指定所有轴: x, y = arr[:100, ...], arr[100:, .

我有一个形状为
(400,3,3,3)
的numpy数组,我想把它分成两部分,所以我会得到像
(100,3,3,3)
(300,3,3)
这样的数组

我在玩numpy
split
方法,例如:

subsets = np.array_split(arr, 2)

这给了我想要的,但它将原始数组分成了大小相同的两半,我不知道如何指定这些大小。使用一些索引(我想)可能很容易,但我不确定如何操作。

如我在评论中所述,您可以使用
省略号
符号指定所有轴:

x, y = arr[:100, ...], arr[100:, ...]

x,y=arr[:100,…],arr[100:,…]
应该可以……我会使用像@c这样的切片表示法ᴏʟᴅsᴘᴇᴇᴅ 这表明,它可能占用更少的内存(因为数组将共享底层缓冲区)。不确定拆分是否会发生这种情况,但如果必须这样做,您可以执行
subsets=np.array_-spit(arr,[100])
切片符号正是我想要的,谢谢。