加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:58:31 所属栏目:Python 来源:网络整理
导读:我用以下代码保存了许多numpy对象: f = gzip.GzipFile('/some/path/file.npy.gz',"w")np.save(file=f,arr=np.rint(trimmed).astype('int16'))f.close() 现在我有一堆npy.gz文件,但我无法弄清楚如何以编程方式将它们返回到python中. np.fromtext或np.fromstr
我用以下代码保存了许多numpy对象:

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

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

我试过了:

gzipfile = gzip.GzipFile('/some/path/file.npy.gz','rb')
text = gzipfile.read()

文字看起来像这样:

b'x93NUMPYx01x00Fx00{'descr': '<i2','fortran_order': False,'shape': (132,248,291),} n0xf80xf80...'

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

解决方法

如果它可以保存到gzip文件,它也可以从一个读取. load是保存的对应物:

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])

还有一个savez(压缩)可以将多个数组保存到zip存档中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读