numpy python pickle大小限制

pb3skfrl  于 2023-02-08  发布在  Python
关注(0)|答案(1)|浏览(182)

我想pickle一个大的(1810392 * 255)numpy数组。但是pickle时我得到一个错误:

[...]error: 'i' format requires -2147483648 <= number <= 2147483647

代码:

import numpy
import pickle
l=numpy.zeros((1810392,255))
f=open('file.pkl','wb')
pickle.dump(l,f,2)

有大小限制吗?有变通方法吗?如果没有必要,我不想使用hdf5或其他没有内置到python中的东西。
我还尝试了numpy.saveznumpy.savez_compressed。代码:

import numpy
l=numpy.zeros((1810392,255))
numpy.savez_compressed('file.npz',l)

保存工作,但当我尝试加载数据时,我得到了一个错误。代码:

import numpy
l=numpy.load('file.npz')
l['arr_0']

我需要使用numpy.savez而不是numpy.save,因为我想存储额外的数据。

jhdbpxl9

jhdbpxl91#

我也遇到过类似的问题,我得到的pickle文件最大为155Mb,如果你打算添加更多的数据,我建议你使用sqlite3或firebase这样的数据库。

相关问题