如何将包含 numpy 数组的 pandas 列转换为 nd 数组

How to convert a pandas column that contains numpy arrays to nd array

我有以下数据框:

df = pd.DataFrame(
{'a':[np.array([1,2,3]),np.array([4,5,6])]
}
)

我想从 a 列中提取如下所示的 numpy 数组:

 array([[1., 2., 3.],
   [4., 5., 6.]])

我可以像下面那样做:

 for i, row in df.iterrows():
     t_arr[i,:] = row["a"]

但我正在寻找没有 for 循环的解决方案。 .valuesto_numpy() 没有 return 想要的结果

使用np.stack创建二维numpy数组。

来自 a 列的系列对象: np.stack(df['a'].values)

或者从整个DataFrame: np.stack(df.values.flatten())

编辑:您甚至不需要调用 .values。您可以在系列对象上调用 np.stack

你可以这样做:

np.vstack(df['a'])

哪个returns:

array([[1, 2, 3],
       [4, 5, 6]])