Конвертировать список двумерных DataFrame в Torch Tensor - PullRequest
0 голосов
/ 14 октября 2019

Цель: Я работаю с RNN в PyTorch, и мои данные представлены списком DataFrames, где каждый 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))

Мне кажется, проблема в том, чтобы одновременно преобразовать DataFrames в массивы и список в Tensor.

1 Ответ

1 голос
/ 14 октября 2019

Я не думаю, что вы можете преобразовать список фреймов данных в одну команду, но вы можете конвертировать список фреймов данных в список тензоров, а затем объединить список.

Например,

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)
...