如何从npy.gz文件中恢复numpy数组

jst*_*er7 6 python numpy

我用以下代码保存了许多numpy对象:

f = gzip.GzipFile('/some/path/file.npy.gz', "w")
np.save(file=f, arr=np.rint(trimmed).astype('int16'))
f.close()
Run Code Online (Sandbox Code Playgroud)

现在我有一堆npy.gz文件,但我无法弄清楚如何以编程方式将它们返回到python中.np.fromtext或者np.fromstring似乎不起作用,并且无论如何都不会保留形状信息.

我试过了:

gzipfile = gzip.GzipFile('/some/path/file.npy.gz', 'rb')
text = gzipfile.read() 
Run Code Online (Sandbox Code Playgroud)

而且text看起来是这样的:

b'\x93NUMPY\x01\x00F\x00{\'descr\': \'<i2\', \'fortran_order\': False, \'shape\': (132, 248, 291), } \n0\xf80\xf80...'
Run Code Online (Sandbox Code Playgroud)

但是我接下来要做什么才能将该字符串重新变成一个numpy对象?

hpa*_*ulj 10

如果它的工作原理save到一个gzip文件,它也可能工作从一读. load是对应的save:

In [193]: import gzip
In [194]: f = gzip.GzipFile('file.npy.gz', "w")
In [195]: np.save(f, np.arange(100))
In [196]: f.close()

In [200]: f = gzip.GzipFile('file.npy.gz', "r")
In [201]: np.load(f)
Out[201]: 
array([ 0,  1,  2,  3,  4,  .... 98, 99])
Run Code Online (Sandbox Code Playgroud)

还有一个savez(compressed)可以将多个阵列保存到zip存档中.