我决定比较NumPy的ndarray.tofile
与标准f.write
的效果,我对结果似乎感到惊讶。为什么tofile
比正常文件写入慢30倍? tofile
在大型数据集上的效果是否优于f.write
?
WRITE:
ndarray.tofile(档案):10.668秒
timeit.timeit("a.tofile(f)", "import numpy as np; dt=np.dtype('B'); f=open('test.x','wb'); a=np.array(range(100),dt)")
写| file.write(ndarray.tobytes()):0.316秒
timeit.timeit("f.write(a.tobytes())", "import numpy as np; dt=np.dtype('B'); f=open('test.x','wb'); a=np.array(range(100),dt)")
的 READ:
np.array(list(f.read()),dt):11.544秒
timeit.timeit("a=np.array(list(f.read()),dt)", "import numpy as np; dt=np.dtype('B'); f=open('test.x','rb');")
np.fromfile(f,dt):11.544秒
timeit.timeit("a=np.fromfile(f,dt)", "import numpy as np; dt=np.dtype('B'); f=open('test.x','rb');")