You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DataFrame转换为符合LSTM输入要求的shape为(3,Y,2)的3D数组

DataFrame转LSTM所需3D数组解决方案

你可以通过pandas分组方法快速完成转换,完整实现代码如下:

import pandas as pd
import numpy as np

# 1. 构造DataFrame(实际使用时替换为你自己的数据源即可)
df = pd.DataFrame({
    'label': ['a', 'b', 'a', 'b', 'c'],
    'data_1': [1.09, 2.1, 5.0, 2.0, 1.9],
    'data_2': [1, 2, 3, 3, 4]
})

# 2. 按label分组,按顺序提取每个标签对应的特征数组
lstm_input = [
    group[['data_1', 'data_2']].values 
    for _, group in df.groupby('label', sort=True)
]

# 可选:转成numpy object数组适配深度学习框架输入要求
lstm_input_np = np.array(lstm_input, dtype=object)

执行后输出的lstm_input结构完全匹配你的需求:

[
  # 对应标签a的所有数据,形状(2,2)
  [[1.09, 1], [5.0, 3]],
  # 对应标签b的所有数据,形状(2,2)
  [[2.1, 2], [2.0, 3]],
  # 对应标签c的所有数据,形状(1,2)
  [[1.9, 4]]
]

注意:如果后续输入Keras的LSTM层,需要配合Masking层处理变长序列,或者提前对所有序列做padding操作统一长度。

内容的提问来源于stack exchange,提问作者Ahmad Okasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:42:00