Храните содержимое нескольких файлов в массиве Python - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть каталог с большим количеством файлов, структурированный как n rows x 2 columns.Я хотел бы сохранить содержимое этих файлов таким образом, чтобы форма конечного массива была такой (nfiles, nrows, 2).Что-то похожее на

array = numpy.array([[[1,1], [1,1], [1,1]], [1,1], [1,1], [1,1]]])

, но как это сделать для нескольких файлов?

Я пробовал

fnames = glob.glob(/path/to/directory/"*.txt")
final_array = [numpy.genfromtxt(fname) for fname in fnames]

, но окончательная форма (nfiles,),и numpy.reshape не работал.С помощью

import pandas as pd
df_list = [pd.read_csv(filename, header=None, sep=" ") for filename in fnames]
comb = pd.concat(df_list, ignore_index=True, sort=False)

я могу создать массив со всем содержимым файла (предположительно в порядке) в 2 столбца.Есть ли способ разделить это на части, чтобы изменить форму (Nrows то же самое для каждого файла)?Обратите внимание, что я не хочу отдельных массивов для каждого файла, но один массив

Спасибо всем за помощь

1 Ответ

0 голосов
/ 25 сентября 2018

Используйте np.stack или Если вы читаете несколько файлов в цикле:

import numpy as np
a = np.zeros(m,n,2) 

for i in range(m):
# code here
    a[i,:,:] = df_list
# code here
...