如何将一维数组转换为只有一列的二维数组?
我想把一个 numpy 数组
的形状从这个...
[ 3803.74060338 2041.36742598 2884.96439427 17561.9569717 ]
改成这个...
[ [3803.74060338]
[2041.36742598]
[2884.96439427]
[17561.9569717] ]
我试着用 np.reshape(my_array, (1,1))
,但是总是出现这个错误...
ValueError: total size of new array must be unchanged
请问 reshape
是我想要做的操作吗?
2 个回答
3
之所以np.shape()
没能正常工作,是因为你试图把一个包含4个元素的数组变成一个1行1列的数组。
>>> import numpy as np
>>> a=np.array([1,2,3,4,5])
>>> a
array([1, 2, 3, 4, 5])
>>> a.reshape(len(a),1)
array([[1],
[2],
[3],
[4],
[5]])
>>>
2
使用 numpy.newaxis
来给数组添加额外的维度:
>>> my_array = numpy.array([1, 2, 3, 4, 5])
>>> my_array[:, numpy.newaxis]
array([[1],
[2],
[3],
[4],
[5]])
(numpy.newaxis
实际上就是 None
,所以你也可以直接用 None
。我觉得用 newaxis
更容易理解,但这主要是个人喜好的问题。)