将二维DataFrame列表转换为Torch Tensor

时间:2019-10-14 18:40:23

标签: python dataframe pytorch torch

目标:我正在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转换为张量。

1 个答案:

答案 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)