如何在python中将对象数组转换为普通数组

如何在python中将对象数组转换为普通数组,python,arrays,python-2.7,numpy,Python,Arrays,Python 2.7,Numpy,我有一个像这样的对象数组 array([array([[2.4567]],dtype=object), array([[3.4567]],dtype=object), array([[4.4567]],dtype=object), array([[5.4567]],dtype=object) ... array([[6.4567]],dtype=object)) 这只是一个例子,实际的要大得多 那么,如何将其转换为普通浮点数组。使用: 或者,使用重塑: [1]中的:a=array([array

我有一个像这样的对象数组

array([array([[2.4567]],dtype=object), array([[3.4567]],dtype=object), array([[4.4567]],dtype=object), array([[5.4567]],dtype=object) ... array([[6.4567]],dtype=object))
这只是一个例子,实际的要大得多

那么,如何将其转换为普通浮点数组。

使用:


或者,使用
重塑

[1]中的
:a=array([array([[2.4567]],dtype=object),array([[3.4567]],dtype=object),array([[4.4567]],dtype=object)])
在[2]中:a.astype(float)。重塑(a.size,1)
出[2]:
数组([[2.4567],
[ 3.4567],
[ 4.4567]])

您可以使用np.stack,它也适用于多维情况:

import numpy as np
from numpy import array

arr = array([array([[2.4567]],dtype=object),array([[3.4567]],dtype=object),array([[4.4567]],dtype=object),array([[5.4567]],dtype=object),array([[6.4567]],
dtype=object)])
np.stack(arr).astype(None)
array([[[2.4567]],
       [[3.4567]],
       [[4.4567]],
       [[5.4567]],
       [[6.4567]]])

b=np.array([float(i)表示arr中的i])[:,np.newaxis]可能会起作用,如果我提到的上述数组只是多维数组的第一行,并且有多行。“np.concatenate”将它们全部连接到一个我不想要的一维数组中。那么,如何在不使用for循环的情况下按行连接它们呢?我有与@Shashank相同的问题。上述方法不适用于N x M阵列。@达西然后问一个新问题,而不是对现有问题进行向下投票。欧欧欧
import numpy as np
from numpy import array

arr = array([array([[2.4567]],dtype=object),array([[3.4567]],dtype=object),array([[4.4567]],dtype=object),array([[5.4567]],dtype=object),array([[6.4567]],
dtype=object)])
np.stack(arr).astype(None)
array([[[2.4567]],
       [[3.4567]],
       [[4.4567]],
       [[5.4567]],
       [[6.4567]]])