2
我需要讀取一個大2.5GB的文件。我用下面的syntx:有效地管理內存和python處理
import numpy as np
limit=4269*352*288*3
mat1=np.zeros(limit, dtype='uint8')
mat1=np.fromfile("path/to/file", "uint8", limit)
我現在需要重塑這個數組:
mat_new=np.zeros([4269, 288, 352, 3], dtype='uint8')
mat_new=np.transpose(np.reshape(mat1,[4269,3,288,352]), [0,2,3,1])
這需要大約35秒對我的4GB內存,i7的第二代系統。 任何方式,我可以讓它更快。因爲這只是我的計劃的開始和更復雜的事情。我從此不需要mat1
!
此外,我只讀了一半的文件,因爲Python給了我'最大內存達到'的錯誤。
您不需要先創建一個零數組,您可以刪除'np.zeros()'行。從文件中讀取數據很慢,請查看您的代碼以確定'np.fromfile()'的時間消耗。 – HYRY
大約需要18秒鐘才能讀取1.25GB的數據!和12-14秒重塑! – change