如何以非惰性方式加载 npz 文件?

Fra*_*urt 1 numpy python-2.7

NumPy 的load()函数在加载文件时返回一个惰性文件加载器,而不是实际数据npz。如何加载npz文件以便将数据加载到内存中?

ali*_*i_m 5

如果要强制读取和解压缩数组的内容,只需将它们的内容分配给变量,例如:

data = np.load('/path/to/data.npz', 'r')
a = data['a']
b = data['b']
# etc
Run Code Online (Sandbox Code Playgroud)

如果你想保持与惰性加载器完全相同的语法,你可以简单地将所有数组加载到一个字典中,例如:

data_dict = dict(data)
Run Code Online (Sandbox Code Playgroud)

所以现在你可以使用

data_dict['a']
Run Code Online (Sandbox Code Playgroud)

a在脚本的后面部分中引用。不过,就我个人而言,我不会保留 dict,因为它保存对所有数组的引用这一事实会阻止任何单独未使用的数组稍后在您的脚本中被垃圾收集。