如何将非常大的ndarray保存到磁盘?

时间:2017-07-13 19:09:45

标签: python numpy serialization multidimensional-array

如何将非常大的ndarray保存到磁盘?

请注意,任何解决方案,包括重复数据都是不可接受的。

例如,此代码

x = pandas.HDFStore("some_file.hdf")
x.append("a", pandas.DataFrame(a))

包括

pandas.DataFrame(a)

哪个不可复制重复使用内存。

明显的代码

pickle.dump(a, f)

挂起。

1 个答案:

答案 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的内存使用情况表明,在保存期间它并没有显着增加,因此不会创建副本。