Преобразование массива pandas Dataframes в 3D NumPy массив - PullRequest
0 голосов
/ 17 июня 2020

У меня есть numpy массив из pandas Dataframes, который мне нужно преобразовать в 3D numpy массив формы (образцы, строки, столбцы), чтобы подать в модель Keras для обучения. У меня 46 образцов в моем наборе данных, и каждый образец составляет 1101 строку на 64 столбца.

Вот код для моего 1D numpy массива Dataframes:

static_dfs = []
#read in static csvs as pandas df
#static files is my np array of csv files
for x in range(0, static_files.size):
  df = pd.read_csv(static_files[x], sep='\t', skiprows=skip_rows, header=(0))
  #append df to list  
  static_dfs.append(df)

#convert list to np array
static_dfs = np.asarray(static_dfs)

Действительно, форма массив равен (46,) [количество выборок]. Если я посмотрю на один из Dataframes в массиве (например, static_dfs [0]), его форма будет (1101, 64).

Затем я попытаюсь преобразовать его в 3D numpy array:

static_nps = []

for x in range(0, static_dfs.size):
  static_nps.append(static_dfs[x].to_numpy())

#convert to numpy array
static_nps = np.asarray(static_nps)

Однако это дает мне эту ошибку:

could not broadcast input array from shape (1101,64) into shape (1101)

для строки кода:

    #convert to numpy array
    static_nps = np.asarray(static_nps)

Хуже всего то, что у меня это работало раньше, но соавтор я просмотрел мой код и отредактировал его после того, как мы обнаружили ошибку в одном из наших файлов данных. Теперь я не могу заставить его снова работать, как раньше, и застрял: (

Желаемая форма моего 3D-массива будет выглядеть как (46, 1101, 64). Если бы кто-нибудь мог решить эту проблему, вы бы будет огромным подспорьем! Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...