我有一个名为'结果'的numpy数组。这个定义如下
array([1, 2, 3, 4, 5, 6])
但我需要它看起来像这样:
array([1, 2], [3, 4], [5, 6])
如何转换'结果'在Python中使用这个新数组?我最终得到的数组仍然需要是一个numpy数组。
答案 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]])