【发布时间】:2017-10-18 12:30:47
【问题描述】:
我想将大数组保存到文件中。我用pickle.dump(array, file, pickle.HIGHEST_PROTOCOL)。它适用于小数组,但是当我尝试保存非常大的数组(例如 1GB 或更多)时,它会使用整个内存并且我的电脑会死机。
有什么办法可以保存这么大的数组吗?
数组示例:
[[array([1,2,3,298,299,300], dtype=float32),array([1,2,3,298,299,300], dtype=float32),array([1,2,3,298,299,300], dtype=float32)],
[array([1,2,3,298,299,300], dtype=float32),array([1,2,3,298,299,300], dtype=float32),array([1,2,3,298,299,300], dtype=float32)],
[array([1,2,3,298,299,300], dtype=float32),array([1,2,3,298,299,300], dtype=float32),array([1,2,3,298,299,300], dtype=float32)]]
【问题讨论】:
-
也许可以将数组保存为二进制格式,即使需要付出更大的努力。你有
array的例子吗(请小一点?)我不确定类型。 -
假设您使用
numpy:试试numpy.save,它会保存到.npy文件中。 -
请举例说明你的数组。
-
不要使用pickle(存储数据):benfrederickson.com/dont-pickle-your-data使用Json, Csv, HDF5, ...
标签: python arrays python-3.x file pickle