例如array
x = np.array([1, 2, 3, 4, 5, 6])
分为4个"就像一个列表
[array([1]), array([2]), array([3]), array([4])]
显然,要实现这一点,必须删除一些数据。在这种情况下,第5和第6元素是。我如何将任何数组分割成大小相等的子数组,即使它们不容易被必要的子数组数量整除,并且必须删除数据?
就像你说的,在分区之前修剪数组是很简单的:
n = 4
x[:len(x)//n*n].reshape(n,-1)
输出:
array([[1],
[2],
[3],
[4]])
使用np.split
和模来提前仔细修剪数组:
N = 4
x = np.arange(6)
trim = len(x) % N or None
result = np.split(x[:trim], N)
如果len(x)
不是N
的倍数,则trim
是正确的。如果是,模将为零,or None
将负责后续的切片。