有人给我发送了一个 .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 的文档所示:
使用负载打开保存的 .npz 文件时
是 回。这是一个可以查询的a NpzFile object
它的数组列表(带有dictionary-like object
),以及数组 他们自己。.files attribute
您可以轻松地将它当作一本字典:
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]
它是一个
dictionary-like
对象,因为你不能直接分配给data
(NpzFile对象),你会遇到这个错误TypeError: NpzFile' object does not support item assignment
。
但是您可以将其转换为字典并将其完全用作字典,然后将其保存到 .npz 文件,如下所示:
data = dict(data)
data["y"] = np.arange(21)
np.savez("mat",**data)
打开 VS code 并安装此扩展“vscode-numpy-viewer”
.npz 文件查看器