我有成千上万个csv
文件(总计约2GB)。通过
imp.append(pd.read_csv('.\\folder\\'+iterator,delimiter=',', header=None, engine='c',dtype=np.float32))
大约需要60
秒。为了加快导入过程,我尝试通过
pickle
file
放入硬盘中的单个pickle.dump(imp, file, 2)
中
imp=pickle.load( file )
但是,与我的预期相反,取消整理数据以再次导入
60
至少花费csv
秒,甚至更多。
这是预期的行为吗?我认为在将二进制数据转储保存到硬盘驱动器上之后,我们应该能够在imp=[]
for iterator in files:
imp.append(pd.read_csv('.\\folder\\'+iterator,delimiter=',', header=None
, engine='c',dtype=np.float32).values.tolist())
imp=np.asarray(imp, dtype=np.float32)
np.savez(".\\file.dump.npz", imp)
解释程序最初需要加载数据的一小部分时间内对其进行检索。也许腌制不是正确的程序吗?我该如何做二进制转储,并将预处理后的数据更有效地加载回内存中?
编辑:
根据AMC在评论中的建议,我将数据另存为:
imp=(np.load(".\\file.dump.npz"))['arr_0']
并将其加载为
print(imp.shape)
结果很快。
print(imp.dtype)
(24347,1140,10)
{{1}}
float32