Python 三维numpy阵列到数据帧

Python 三维numpy阵列到数据帧,python,deep-learning,time-series,recurrent-neural-network,Python,Deep Learning,Time Series,Recurrent Neural Network,我有一个三维numpy数组 ([[[0.30706802]], [[0.19451728]], [[0.19380492]], [[0.23329106]], [[0.23849282]], [[0.27154338]], [[0.2616704 ]], ... ]) 形状为844,1,1,由RNN模型得出。预测 y_prob=加载的_model.predictX ,我的问题是如何将其转换为数据帧。 我用过Keras 我的目标是: 0

我有一个三维numpy数组

   ([[[0.30706802]],

   [[0.19451728]],

   [[0.19380492]],

   [[0.23329106]],

   [[0.23849282]],

   [[0.27154338]],

   [[0.2616704 ]], ... ])
形状为844,1,1,由RNN模型得出。预测

y_prob=加载的_model.predictX

,我的问题是如何将其转换为数据帧。 我用过Keras

我的目标是:

0      0.30706802
7      0.19451728
21     0.19380492
35     0.23329106
42       ...
         ...   
815      ...
822      ...
829      ...
836      ...
843      ...
Name: feature, Length: 78, dtype: float32
给你

import pandas as pd
y = ([[[[11]],[[13]],[[14]],[[15]]]])
a = []
for i in y[0]:
    a.append(i[0])
df = pd.DataFrame(a)
print(df)
输出:

    0
0  11
1  13
2  14
3  15
可以为axis=0和axis=1自由设置自定义索引值

您可以尝试:

s=pd.Seriesyour_array.flatten,name='feature'
然后,您可以使用s.to_frame将序列转换为数据帧。其思想是首先将嵌套列表展平到list,然后使用数据帧的from_records方法在df中将其转换

import numpy as np
import pandas as pd

data = np.array([[[0.30706802]],[[0.19451728]],[[0.19380492]],[[0.23329106]],[[0.23849282]],[[0.27154338]],[[0.2616704 ]]])

import itertools
data  = list(itertools.chain(*data))
df = pd.DataFrame.from_records(data)
没有itertools

data = [i for j in data for i in j]
df = pd.DataFrame.from_records(data)
或者你可以使用其中一个答案中提到的展平方法,但是你可以像这样直接使用它

pd.DataFrame(data.flatten(),columns = ['col1']) 

好的,你的解决方案非常有效,结果没有得到nan值,谢谢