将二维DataFrame的列表转换为火炬张量

问题描述 投票:0回答:1

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

python dataframe tensorflow pytorch torch
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.