如何拆分/重塑numpy数组

时间:2015-01-05 06:06:29

标签: python arrays numpy reshape

我有一个名为'结果'的numpy数组。这个定义如下

array([1, 2, 3, 4, 5, 6])

但我需要它看起来像这样:

array([1, 2], [3, 4], [5, 6])

如何转换'结果'在Python中使用这个新数组?我最终得到的数组仍然需要是一个numpy数组。

1 个答案:

答案 0 :(得分:5)

您可以使用reshape方法直接实现此目的。

例如:

In [1]: import numpy as np

In [2]: arr = np.array([1, 2, 3, 4, 5, 6])

In [3]: reshaped = arr.reshape((3, 2))

In [4]: reshaped
Out[4]: 
array([[1, 2],
       [3, 4],
       [5, 6]])

请注意,reshape会尽可能为您提供数组的视图。换句话说,您正在查看与原始数组相同的基础数据:

In [5]: reshaped[0][0] = 7

In [6]: reshaped
Out[6]: 
array([[7, 2],
       [3, 4],
       [5, 6]])

In [7]: arr
Out[7]: array([7, 2, 3, 4, 5, 6])

这几乎总是一个优势。但是,如果您不想要此行为,则可以随时获取副本:

In [8]: copy = np.copy(reshaped)

In [9]: copy[0][0] = 9

In [10]: copy
Out[10]: 
array([[9, 2],
       [3, 4],
       [5, 6]])

In [11]: reshaped
Out[11]: 
array([[7, 2],
       [3, 4],
       [5, 6]])