我需要读取一个 2.5gb 大的文件。我使用以下语法:
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])
这在我的 4gb ram i7 第二代系统上大约需要 35 秒。任何方式我都可以让它更快。因为这只是我的计划的开始,还有更复杂的事情要发生。以后我不需要mat1
了!
此外,由于 Python 给了我“达到最大内存”错误,所以我只读取了一半的文件。