Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在mmap_模式下Numpy加载*.npz文件的一部分_Python_Numpy_Upload_Numpy Memmap - Fatal编程技术网

Python 在mmap_模式下Numpy加载*.npz文件的一部分

Python 在mmap_模式下Numpy加载*.npz文件的一部分,python,numpy,upload,numpy-memmap,Python,Numpy,Upload,Numpy Memmap,我知道已经有一个类似的问题没有得到回答 我有一个非常大的numpy数组保存在npz文件中。我不想完全加载它(我的RAM不能完全处理它),只想加载它的一部分 文件是这样生成的: np.savez_compressed('file_name.npz', xxx) 我想这样加载它: xxx = np.load('file_name.npz,mmap_mode="r") 现在,要实际访问我感兴趣的数组部分,我应该键入 a = xxx['arr_0'][0][0][0] 但是,尽管这一部分非常小,p

我知道已经有一个类似的问题没有得到回答

我有一个非常大的numpy数组保存在npz文件中。我不想完全加载它(我的RAM不能完全处理它),只想加载它的一部分

文件是这样生成的:

np.savez_compressed('file_name.npz', xxx)
我想这样加载它:

xxx = np.load('file_name.npz,mmap_mode="r")
现在,要实际访问我感兴趣的数组部分,我应该键入

a = xxx['arr_0'][0][0][0]
但是,尽管这一部分非常小,python首先加载整个数组(我知道它是因为我的RAM已满),然后显示这一小部分。如果我直接写信,也会发生同样的情况

xxx = np.load('file_name.npz,mmap_mode="r")['arr_0'][0][0][0]

我做错了什么?

mmap\u模式
不适用于
npz
文件。
npz
zip
存档。也就是说,它包含
npy
文件,每个
键一个
。通过使用OS archive manager工具查看
npz
文件,可以看到这一点

我有点惊讶,您的
load
调用没有引发错误,但是查看代码,我发现它将分派到
NpzFile
加载程序,甚至没有查看
mmap\u mode
参数

要使用
mmap
,您必须提取
arr_0.npy
(再次使用操作系统工具),并在其上使用
load