我有一个包含许多npy文件的zipfile(file1.npy
,file2.npy
,file3.npy
,…)。我想单独加载它们而不在文件系统上提取zipfile。我试了很多东西,但还是想不出来。在
我的猜测是:
import zipfile
import numpy as np
a = {}
with zipfile.ZipFile('myfiles.zip') as zipper:
for p in zipper.namelist():
with zipper.read(p) as f:
a[p] = np.load(f)
有什么想法吗?在
将2个数组保存到各自的文件中:
使用文件浏览器工具,创建一个
^{pr2}$zip
文件,并尝试加载它:看起来
np.load
检测到了zip
性质(独立于名称),并返回了一个NpzFile
对象。让我们把它赋给一个变量,然后尝试常规的.npz
提取:因此,
load
可以对npy
文件的任何zip
文件执行lazy
加载,而不管它是如何创建的。在numpy函数需要一个file对象,而不是结果文本。对于zip文件,我通常会执行以下操作:
我想你应该通过拉链。打开(p,mode='r')进入np.负荷(f) 一。同时,我强烈建议你不要这样做拉链。读(p) 因为它会同时读取内存中的整个文件。因此,使用您的代码约定,请尝试:
^{pr2}$相关问题 更多 >
编程相关推荐