目标:我正在PyTorch中使用RNN,我的数据由一个DataFrame列表给出,其中每个DataFrame表示一个观察值,例如:
import numpy as np
data = [pd.DataFrame(np.zeros((5,50))) for x in range(100)]
表示100次观察,每个过程包含50个参数和5个时间步长。对于我的模型,我需要一个形状为(100,5,50)
的张量。
问题:我尝试了很多事情,但似乎无济于事,有人知道这是怎么做的吗? 这种方法行不通:
import torch
torch.tensor(np.array(data))
我的问题是要同时将DataFrame转换为Array,将List转换为张量。
答案 0 :(得分:1)
我认为您无法在单个命令中转换数据帧列表,但是可以将数据帧列表转换为张量列表,然后将其连接起来。
例如
import pandas as pd
import numpy as np
import torch
data = [pd.DataFrame(np.zeros((5,50))) for x in range(100)]
list_of_arrays = [np.array(df) for df in data]
torch.tensor(np.stack(list_of_arrays))
#or
list_of_tensors = [torch.tensor(np.array(df)) for df in data]
torch.stack(list_of_tensors)