老哥們,請問我用python讀入一個1G大小的CSV,內容是二維矩陣,元素為10位小數。如何將它轉換為list的list呢?我現在用的是pandas的readcsv讀取然后轉為dataframe,然后value tolist,這樣可以實作,但是不知道為什么,1G的檔案要占用我10G的記憶體,這樣受不了啊。我已經進行優化把dtype指定為float32了,還是很大。
請問有什么辦法可以讀入這個csv,同時占用記憶體較小的方法么?
uj5u.com熱心網友回復:
那就自己寫 , 看看效率能否達到。 先切個幾十M做測驗。代碼類似這樣
data_file = open('data.csv', 'r')
list1 = data_file.readlines()
data1 = []
for l in list1:
list2 = l.strip().split(',')
data1.append(list2)
uj5u.com熱心網友回復:
好,我這就去試一下~(其實我也不想用dataframe,得轉兩步,然后占很大記憶體,del變數然后collect也收不回來,不知道為什么,可能是雖然del了,但py還沒把記憶體還回來吧。反正垃圾回收效果很差)轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/116593.html
下一篇:降噪軟體讓NVH診斷更輕松
