在执行np.load(“ filename.npz”)然后执行.keys()时,我看不到返回的任何键吗?

时间:2019-03-06 01:29:48

标签: python numpy

我做了

x = np.linspace(0, 1 , 10)
y = np.sin(x)
np.savez('xy_values', x_vals=x, y_vals=y) 
w = np.load('xy_values.npz')

但是现在w.keys()给了我以下内容:

  

KeysView(<numpy.lib.npyio.NpzFile object at

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在最近的 numpy 版本中,

list(w.keys())

它有效! :)

经过测试的 numpy 版本:1.19.2

答案 1 :(得分:0)

您对 w.keys() 的调用会返回一个可迭代对象,该对象可让您访问键。但是,此对象未实现 __str____repr__ 方法,因此在打印时不会产生有用的输出。

由于对象是可迭代的,你可以通过迭代对象来打印结果,如下所示。

for k in w.keys():
    print(k)

函数 listtuple 可以分别将任何可迭代对象转换为列表和元组。因此,

print(list(w.keys()))  # or
print(tuple(w.keys()))

打印所需的键。在交互式环境中,例如 IPython 或 Jupyter,您可以省略对打印的调用以获得相同的结果。