我有一个算法,它通过数据集运行并创建一个 scipy 稀疏矩阵,然后使用以下方法保存:
numpy.savez
并且文件已打开,例如:
open(file, 'wb')
.
矩阵可以获得相当大的磁盘空间(运行 30 天大约需要 20 GB)
之后,这些矩阵被加载到其他应用程序中,例如:
file = open(path_to_file, 'rb')
matrix = load(file)
data = matrix['arr_0']
ind = matrix['arr_1']
indptr = matrix['arr_2']
10天它工作得很好。
当运行 30 天的数据集时,矩阵也成功创建并保存。
但是当试图加载它时,我得到了错误:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/ubuntu/recsys/Scripts/Neighborhood/s3_CRM_neighborhood.py", line 76, in <module>
data = matrix['arr_0']
File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 241, in __getitem__
return format.read_array(value)
File "/usr/lib/python2.7/dist-packages/numpy/lib/format.py", line 458, in read_array
data = fp.read(int(count * dtype.itemsize))
OverflowError: length too large
如果我可以成功创建并保存矩阵,它不应该也能加载结果吗?是否有一些开销会杀死加载?有可能解决这个问题吗?
提前致谢,