繁体   English   中英

如何将 3d numpy 数组转换为 numpy 1d 数组的 pandas 数据帧?

[英]How to turn a 3d numpy array into a pandas dataframe of numpy 1d arrays?

我有一个numpy 3d 数组。 我想从中创建一个pandas数据框,它的行数与数组的第一个维度的大小一样多,列数将是第二个维度的大小。 数据帧的值应该是具有第三维大小的实际向量( numpy数组)。

就像我有这个大小为(2, 3, 5)的数组:

>>> arr
array([[[ 1.,  1.,  1.,  1.,  1.],
        [ 0.,  0.,  0.,  0.,  0.],
        [ 1.,  2.,  3.,  4.,  6.]],

       [[ 0.,  0.,  0.,  0.,  0.],
        [11., 22., 33., 44., 66.],
        [ 0.,  0.,  0.,  0.,  0.]]])

我想把它变成这个数据框(并用原生的numpy和/或pandas方法有效地做到这一点):

>>> df_arr
                        col0                            col1                       col2
0  [1.0, 1.0, 1.0, 1.0, 1.0]       [0.0, 0.0, 0.0, 0.0, 0.0]  [1.0, 2.0, 3.0, 4.0, 6.0]
1  [0.0, 0.0, 0.0, 0.0, 0.0]  [11.0, 22.0, 33.0, 44.0, 66.0]  [0.0, 0.0, 0.0, 0.0, 0.0]

pd.DataFrame.from_records有效:

pd.DataFrame.from_records(arr, columns=['col0', 'col1', 'col2'])
                        col0  ...                       col2
0  [1.0, 1.0, 1.0, 1.0, 1.0]  ...  [1.0, 2.0, 3.0, 4.0, 6.0]
1  [0.0, 0.0, 0.0, 0.0, 0.0]  ...  [0.0, 0.0, 0.0, 0.0, 0.0]

[2 rows x 3 columns]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM