如何将numpy数组的数组重新整形为单行

时间:2016-11-28 09:07:15

标签: python arrays numpy

我有一个numpy数组

0
0
0
.
.
0
0

我想把它作为

np.reshape(new_arr, newshape=1)   

我知道我们必须使用reshape函数,但是如何使用它,是我无法弄清楚的,

我的尝试

ValueError: total size of new array must be unchanged

哪个错误


Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

documentation不是很友好

3 个答案:

答案 0 :(得分:6)

您还可以查看numpy.ndarray.flatten

a = np.array([[1,2], [3,4]])
a.flatten()

# array([1, 2, 3, 4])

flattenravel之间的区别在于flatten将返回数组的副本,而ravel会在可能的情况下反射原始数据。因此,如果修改ravel返回的数组,它也可能会修改原始数组中的条目。

创建原始数组的副本通常更安全,但由于必须分配新内存来创建原始数组,因此需要更多时间。

您可以详细了解这两个选项here之间的区别。

答案 1 :(得分:1)

根据documentation

np.reshape(new_arr, newshape=n*m) 

其中nm分别是new_arr

的行数和列数

答案 2 :(得分:0)

使用ravel()方法:

In [1]: arr = np.zeros((2, 2))

In [2]: arr
Out[2]: 
array([[ 0.,  0.],
       [ 0.,  0.]])

In [3]: arr.ravel()
Out[3]: array([ 0.,  0.,  0.,  0.])