Python 将Numpy数组拆分为等长子数组

Python 将Numpy数组拆分为等长子数组,python,arrays,numpy,Python,Arrays,Numpy,我有一个非常巨大的numpy阵列,如下所示: np.array([1, 2, 3, 4, 5, 6, 7 , ... , 12345]) np.array([[1, 2, 3],[4, 5, 6], [6, 7, 8], [...], [12340, 12341, 12342], [12343, 12344, 12345]]) 我需要在另一个数组中创建n元素的子组(在示例n=3中),如下所示: np.array([1, 2, 3, 4, 5, 6, 7 , ... , 12345]) n

我有一个非常巨大的numpy阵列,如下所示:

np.array([1, 2, 3, 4, 5, 6, 7 , ... , 12345])
np.array([[1, 2, 3],[4, 5, 6], [6, 7, 8], [...],  [12340, 12341, 12342], [12343, 12344, 12345]])
我需要在另一个数组中创建
n
元素的子组(在示例
n=3
中),如下所示:

np.array([1, 2, 3, 4, 5, 6, 7 , ... , 12345])
np.array([[1, 2, 3],[4, 5, 6], [6, 7, 8], [...],  [12340, 12341, 12342], [12343, 12344, 12345]])
我确实使用普通的python列表完成了这一点,只是将子组添加到另一个列表中。但是,我很难在numpy做到这一点

你知道我该怎么做吗

谢谢

您可以使用: 从文档中(标题中的链接):

numpy.重塑(a、新形状、订单='C')

为数组提供新形状而不更改其数据

以下是一个如何将其应用于您的情况的示例:

>>> import numpy as np
>>> a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 12345])
>>> a.reshape((int(len(a)/3), 3))
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 12345]], dtype=object)
请注意,显然,
数组
len(a)
)的长度必须是
3的倍数,才能
将其重塑为
二维
数组
,因为它们必须是矩形。

您可以使用: 从文档中(标题中的链接):

numpy.重塑(a、新形状、订单='C')

为数组提供新形状而不更改其数据

以下是一个如何将其应用于您的情况的示例:

>>> import numpy as np
>>> a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 12345])
>>> a.reshape((int(len(a)/3), 3))
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 12345]], dtype=object)

请注意,显然,
数组
len(a)
)的长度必须是
3
的倍数,才能
将其重塑为
二维
数组
,因为它们必须是矩形的。

您可以使用
np.重塑(-1,3)
,其中
-1
表示“剩下什么就剩什么”


您可以使用
np.reformate(-1,3)
,其中
-1
表示“剩下的东西”


听说过
np.reformate
?听说过
np.reformate
?+1,使用
-1
的好技巧,文档提到“一个形状维度可以是-1”,这是一个聪明的实现。+1,使用
-1
的好技巧,文档提到“一个形状维度可以是-1”。这是一个聪明的实现。