如何打开 .npz 文件

问题描述 投票:0回答:6

有人给我发送了一个 .npz 文件。如何使用 Python 打开该文件并从中读取数据?

python file
6个回答
53
投票

在python3中使用它:

from numpy import load

data = load('out.npz')
lst = data.files
for item in lst:
    print(item)
    print(data[item])

33
投票

您想将

numpy.load()
与上下文管理器一起使用:

with numpy.load('foo.npz') as data:
    a = data['a']

您应该在此处使用上下文管理器,如文档所述:

NpzFile
类的返回实例必须关闭以避免泄漏 文件描述符。

上下文管理器将为您处理该问题。


11
投票
import numpy as np

data = np.load('imdb.npz', allow_pickle=True)
lst = data.files

for item in lst:
    print(item)
    print(data[item])

9
投票

使用

load
功能:

import numpy as np
data = np.load('your_file.npz')

2
投票

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

0
投票

打开 VS code 并安装此扩展“vscode-numpy-viewer”

.npz 文件查看器

© www.soinside.com 2019 - 2024. All rights reserved.