我有一个包含大量文件的目录,其结构为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列数组。有没有办法将其分成几部分进行整形(每个文件的行数都相同)?请注意,我不想为每个文件使用单独的数组,而是使用单个数组
谢谢大家的帮助
答案 0 :(得分:1)
使用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