我对 python 和一般编程很陌生,但我试图在包含大约 700 万行 python 的制表符分隔的 .txt 文件上运行“滑动窗口”计算。我所说的滑动窗口的意思是,它将运行一个计算,比如 50,000 行,报告数字,然后向上移动说 10,000 行,并在另外 50,000 行上执行相同的计算。我的计算和“滑动窗口”工作正常,如果我在一小部分数据上测试它,它运行良好。但是,如果我尝试在我的整个数据集上运行该程序,它会非常慢(我现在已经运行了大约 40 个小时)。数学很简单,所以我认为它不应该花这么长时间。
我现在阅读 .txt 文件的方式是使用 csv.DictReader 模块。我的代码如下:
file1='/Users/Shared/SmallSetbee.txt'
newfile=open(file1, 'rb')
reader=csv.DictReader((line.replace('\0','') for line in newfile), delimiter="\t")
我相信这是一次从所有 700 万行中制作一本字典,我认为这可能是它对于较大文件的速度如此之慢的原因。
由于我只对一次对“块”或“窗口”数据运行我的计算感兴趣,有没有更有效的方法来一次只读取指定的行,执行计算,然后用新的指定“重复”指定行的块”或“窗口”?