Python:如何读取列数不均匀的数据文件

Han*_*off 9 python numpy file

我的一个朋友需要阅读大量令人烦恼的数据(大约18000个数据集).具体来说,数据应该是8列和~8000行数据,而是数据以7列的形式传递,最后一个条目溢出到下一行的第一列.

另外每行~30行只有4列.这是因为一些上游程序正在将一个200 x 280阵列重新整形为7x8120阵列.

我的问题是:我们如何将数据读入8x7000阵列.当列数不均匀时,我通常的np.loadtxt和np.genfromtxt库都会失败.

请记住,性能是一个因素,因为必须为~18000个数据文件完成.

以下是典型数据文件的链接:http: //users-phys.au.dk/hha07/hk_L1.ref

Sve*_*ach 12

我想到的更简单的方法:

with open("hk_L1.ref") as f:
    data = numpy.array(f.read().split(), dtype=float).reshape(7000, 8)
Run Code Online (Sandbox Code Playgroud)

这首先将数据读取为一维数组,完全忽略所有换行符,然后将其重新整形为所需的形状.

虽然我认为该任务无论如何都是I/O绑定的,但如果重要的话,这种方法应该使用很少的处理器时间.