我對python和編程一般都很陌生,但我試圖在包含大約7百萬行python的製表符分隔的.txt文件上運行「滑動窗口」計算。滑動窗口的意思是它將運行超過50,000條線的計算,報告數字,然後向上移動10,000條線,並在另外50,000條線上執行相同的計算。我有計算和「滑動窗口」工作正常,它運行良好,如果我測試一小部分我的數據。但是,如果我嘗試在整個數據集上運行該程序,它非常慢(我已經運行了大約40個小時)。數學很簡單,所以我認爲它不應該花這麼長時間。在Python中有效地處理一個大的.txt文件
我正在閱讀我的.txt文件的方式是使用csv.DictReader模塊。我的代碼如下:
file1='/Users/Shared/SmallSetbee.txt'
newfile=open(file1, 'rb')
reader=csv.DictReader((line.replace('\0','') for line in newfile), delimiter="\t")
我認爲,這是製作出來的字典全部7個萬行的一次,我在想可能是它會減慢這麼多的大文件的原因。
因爲我只關心一次對數據的「塊」或「窗口」進行計算,是否有一種更有效的方法來一次只讀取指定的行,執行計算,然後重複指定行的新指定「塊」或「窗口」?
這不會一次製作所有行的字典。它爲每一行製作一本字典。這意味着你發佈的片段並不是你的表現困境的原因。也許你可以向我們展示更多的代碼? –
我懷疑如果你正在計算大量表格式的數據,你可能想看看熊貓:http://pandas.pydata.org/pandas-docs/dev/io.html#iterating-through-文件逐塊大小您嘗試執行的所有操作可能已經完成1000次以上。 – Iguananaut
您將在696個「窗口」上運行此計算。 50k行文件上的單個窗口需要多長時間? –