有人给我发送了一个.npz文件。我如何使用Python打开该文件,并从中读取数据?
在 Python3 中使用以下代码:
from numpy import load
data = load('out.npz')
lst = data.files
for item in lst:
print(item)
print(data[item])
您希望使用 numpy.load()
与上下文管理器一起使用:
with numpy.load('foo.npz') as data:
a = data['a']
根据文档所述,您应在此处使用上下文管理器:
NpzFile
类的返回实例必须关闭以避免泄漏文件描述符。
而上下文管理器将为您处理这个问题。
import numpy as np
data = np.load('imdb.npz', allow_pickle=True)
lst = data.files
for item in lst:
print(item)
print(data[item])
正如np.savez文档中所示:
使用load打开保存的.npz文件时,会返回一个NpzFile对象。这是一个类似于字典的对象,可以通过查询其数组列表(使用.files属性)和数组本身来获取。
您可以轻松地将其视为字典:
data = np.load('mat.npz') # data contains x = [1,2,3,4,5]
for key in data.keys():
print(key) # x
print(data[key]) # [1,2,3,4,5]
它是一个类似字典的对象,因为你不能直接给NpzFile对象中的"data"赋值,否则会出现错误:"TypeError: NpzFile' object does not support item assignment"。
但你可以将其转换成字典,完全像使用字典一样使用它,并将其保存到.npz文件中,就像这样:
data = dict(data)
data["y"] = np.arange(21)
np.savez("mat",**data)