Python 将Numpy数组拆分为等长子数组
我有一个非常巨大的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
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”。这是一个聪明的实现。