我知道已经存在类似的问题,但尚未得到回答。
我有一个非常大的 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]
我究竟做错了什么?