将Pandas系列转换为3D输入向量以实现LSTM

时间:2020-08-26 20:45:11

标签: python pandas numpy lstm

我有一个pandas系列,其中每一行是一个列表序列,每个序列包含50个时间步长作为输入,另一个序列具有相应的10个时间步长序列作为输出。他们的头的形状分别是(5)。我希望将训练数据转换为形状(n_samples,50,1),将测试数据转换为形状(n_samples,10),以便将其输入到多对多LSTM模型。我一直在尝试几种关于Stackoverflow的方法,但是似乎没有一种对我有用。无论我做什么,我都会不断收到错误消息:

ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type list).

a snapshot of what the data looks like

1 个答案:

答案 0 :(得分:1)

我的同事为我提供了答案:

N = 100 #number of samples
X = df_new['sequence']
y = df_new['target']
X = X.iloc[:N]
X = np.array([[np.array(x) for x in X.values]]).T.reshape(N, 50, 1)
y = y.iloc[:N]
y = np.array([np.array(x) for x in y.values])
print(X.shape)
print(y.shape)

我错过的部分是使用转置函数来操纵数组。