如何将非常大的ndarray保存到磁盘?
请注意,任何解决方案(包括复制数据)都是 Not Acceptable 。
例如这段代码
x = pandas.HDFStore("some_file.hdf")
x.append("a", pandas.DataFrame(a))
包括
pandas.DataFrame(a)
哪些不可批准的重复内存使用。
明显的代码
pickle.dump(a, f)
挂起。
最佳答案
看起来 numpy 的 save 函数可以处理大型数组。
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 的内存使用情况表明,在保存过程中它并没有显着增加,因此没有创建副本。
关于python - 如何将非常大的数组保存到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45089164/