Python 如何将numpy数组拆分为具有特定元素数的数组

Python 如何将numpy数组拆分为具有特定元素数的数组,python,arrays,numpy,Python,Arrays,Numpy,我知道np.array\u split允许我们分割一个NumPy数组,但是分割数组中的元素数量只取决于分割块的数量。以下示例显示了我得到的和希望得到的(我的_数组的大小为35): 我知道np.array_split(my_array,[8,16,24,32])可以给我这个特定问题的答案,但我想做的是,对于任何大小的数组,我都可以将其拆分为具有特定数量元素的数组,如果数组不可分割,则最后一个除外 np.array_split(my_array, (my_array.shape[0] + 7) //

我知道np.array\u split允许我们分割一个NumPy数组,但是分割数组中的元素数量只取决于分割块的数量。以下示例显示了我得到的和希望得到的(我的_数组的大小为35):

我知道np.array_split(my_array,[8,16,24,32])可以给我这个特定问题的答案,但我想做的是,对于任何大小的数组,我都可以将其拆分为具有特定数量元素的数组,如果数组不可分割,则最后一个除外

np.array_split(my_array, (my_array.shape[0] + 7) // 8 )
你当然可以把它推广到

np.array_split(my_array, (my_array.shape[0] + N - 1) // N )
你很接近:

my_array = np.arange(35)
N = 8

一种可能的解决方案是使用

列表(分块(my_数组,N))


返回一个列表,除最后一个列表外,所有列表的大小均为N。

您是否测试了问题的建议解决方案?
my_array = np.arange(35)
N = 8
>>> np.array_split(my_array, range(N, len(my_array), N))
[array([0, 1, 2, 3, 4, 5, 6, 7]),
 array([ 8,  9, 10, 11, 12, 13, 14, 15]),
 array([16, 17, 18, 19, 20, 21, 22, 23]),
 array([24, 25, 26, 27, 28, 29, 30, 31]),
 array([32, 33, 34])]