Python 尝试使用numpy.load加载.npz文件并执行操作时内存不足

Python 尝试使用numpy.load加载.npz文件并执行操作时内存不足,python,numpy,memory-leaks,out-of-memory,overflow,Python,Numpy,Memory Leaks,Out Of Memory,Overflow,我一直在尝试加载一个.npz文件。文件内容有两个元素'arr\u 0'和'arr\u 1'。两者都是numpy.ndarray的形状(4056、256、256、3)。然而,当我试图加载它们并执行一些操作时,内存就会耗尽我尝试过寻找各种解决方案,并且在的帮助下,以最小的空间加载了这两种解决方案但除了加载之外,我还需要对它执行一些操作,在这段时间内,会发生内存不足异常。我尝试这样做的系统有16 GB的RAM。 我试图实现的代码如下: # Assume that all the necessary i

我一直在尝试加载一个.npz文件。文件内容有两个元素
'arr\u 0'
'arr\u 1'
。两者都是
numpy.ndarray
的形状
(4056、256、256、3)
。然而,当我试图加载它们并执行一些操作时,内存就会耗尽
我尝试过寻找各种解决方案,并且在的帮助下,以最小的空间加载了这两种解决方案
但除了加载之外,我还需要对它执行一些操作,在这段时间内,会发生内存不足异常。我尝试这样做的系统有16 GB的RAM。
我试图实现的代码如下:

# Assume that all the necessary imports are done. 

dataset = [None, None]
processed_data = "filename.npz"

# The 'NpzMMap' class is directly taken from the link given above
with NpzMMap(processed_data) as zfile:
    with zfile.mmap('arr_0') as data:
        data = data = (data - 127.5) / 127.5   # operation which I want to do with the numpy arrays
        dataset[0]  = data
       
    with zfile.mmap('arr_1') as data:
        data = (data - 127.5) / 127.5
        dataset[1]  = data

# out of memory happens before the print statement
print("dataset[0] shape :",dataset[0].shape, "dataset[0] shape :",dataset[1].shape)

我就是这样保存.npz文件的:

from numpy import savez_compressed

filename = 'filename.npz'
savez_compressed(filename, data_1, data_2)  # both data_1 and data_2 are of the shape (4056, 256, 256, 3)

我尝试了一些方法,比如做
data=(data.real.astype(np.float64)-127.5)/127.5
而不是
data=(data-127.5)/127.5
。但所有这些都会导致记忆不足。这是因为给定的操作将
数据
转换回
numpy.complex128

或者是否有其他方法可以正确保存和加载numpy阵列?
任何帮助都将不胜感激。
谢谢你的阅读