从列表转换为python中的numpy数组问题

时间:2014-03-20 14:07:54

标签: python arrays list numpy

我想在numpy数组中转换此列表:

var=[array([ 33.85967782]), array([ 34.07298272]), array([ 35.06835424])]

结果应如下:

[[ 33.85967782]
 [ 34.07298272]
 [ 35.06835424]]

但是,如果我输入var = np.array(var),结果如下:

[array([ 33.85967782]) array([ 34.07298272]) array([ 35.06835424])]

我有numpy库:import numpy as np

2 个答案:

答案 0 :(得分:5)

np.vstack是执行此操作的规范方法:

>>> var=[np.array([ 33.85967782]), np.array([ 34.07298272]), np.array([ 35.06835424])]

>>> np.vstack(var)
array([[ 33.85967782],
       [ 34.07298272],
       [ 35.06835424]])

如果你想要一个形状(n,1)的数组,但你有多个元素的数组,你可以执行以下操作:

>>> var=[np.array([ 33.85967782]), np.array([ 35.06835424, 39.21316439])]
>>> np.concatenate(var).reshape(-1,1)
array([[ 33.85967782],
       [ 35.06835424],
       [ 39.21316439]])

答案 1 :(得分:4)

我不知道为什么你的方法不起作用,但这对我有用:

>>> import numpy as np
>>> from numpy import array
>>> var=[array([ 33.85967782]), array([ 34.07298272]), array([ 35.06835424])]
>>> np.array(var)
array([[ 33.85967782],
       [ 34.07298272],
       [ 35.06835424]])

这也很有用(新口译员):

>>> import numpy as np
>>> var = [np.array([ 33.85967782]), np.array([ 34.07298272]), np.array([ 35.06835424])]
>>> np.array(var)
array([[ 33.85967782],
       [ 34.07298272],
       [ 35.06835424]])