如何将非常大的ndarray保存到磁盘?
请注意,任何解决方案,包括重复数据都是不可接受的。
例如,此代码
x = pandas.HDFStore("some_file.hdf")
x.append("a", pandas.DataFrame(a))
包括
pandas.DataFrame(a)
哪个不可复制重复使用内存。
明显的代码
pickle.dump(a, f)
挂起。
答案 0 :(得分:1)
看起来numpy的保存功能可以处理大型数组。
from pylab import *
q = randn(1000, 1000, 1000)
print('{} G'.format(q.nbytes/1024**3))
np.save(open('test_large_array_save.dat', 'wb'), q, allow_pickle=False)
结果
7.450580596923828 G
和在磁盘上创建的7.5 G文件。
监控python的内存使用情况表明,在保存期间它并没有显着增加,因此不会创建副本。