Numpy:从多个文件中读取多个列

时间:2014-04-23 17:17:12

标签: python numpy

我有几个文件,我想从中输入数据并可能一次性完成,我的意思是当时不提取每一列。

如果它只是一个文件,我会使用:

data1, data2, data3 = zip(*numpy.loadtxt("myfile.data",usecols=((0,3,4))))

"解压缩"阅读它们后的列,但由于我有几个输入文件,我不知道如何调整它,除了逐个读取它们并追加到最后;但是我读了大量的数据(大约20gb),所以我认为这不是最有效的方法(可能涉及大量数据在RAM中移动)。

你知道有什么事做得更合适吗?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果data1 data2 data3仅占您20 gb数据的一小部分(例如,如果有很多列,而您只从其中取出3个),这些行将会立即将它们全部读给RMA:

data_all=np.vstack([np.loadtxt(item,usecols=((0,3,4))) for item in your_file_list])
data1, data2, data3=data_all.T