如何使用一列将数组维度从一个维度更改为二维

时间:2014-04-07 13:08:06

标签: python numpy

我想从此更改numpy array的形状......

[ 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 个答案:

答案 0 :(得分:3)

np.shape()无效的原因是因为您正在将4个元素阵列重塑为1 x 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]])
>>> 

答案 1 :(得分:2)

使用numpy.newaxis切片以将其他轴放入数组形状中:

>>> my_array = numpy.array([1, 2, 3, 4, 5])
>>> my_array[:, numpy.newaxis]
array([[1],
       [2],
       [3],
       [4],
       [5]])

numpy.newaxisNone,因此您也可以直接使用None。我发现newaxis更具可读性,但这是个人偏好的问题。)