【发布时间】:2017-11-01 12:37:28
【问题描述】:
我正在使用 Spyder IDE 和 Python 2.7。
我有一个名为 data.npz 的 npz 文件,它是给我的。我想将此文件加载到 Spyder 并查看其中的内容。
首先我已经这样做了:
import numpy as np
data = np.load('data.npz')
在 Spyder 的变量资源管理器中,我有一个名为“data”且类型为“object”的变量。当我双击这个变量时,Spyder 给出一个错误提示“当前不支持对象数组”。
当我只是打字时
data
我得到这样的东西:
array({'a': array([ 1,2,3, ...,
4,5,6]), 'b': 10, 'c': array([-1,-2,-3]), 'd': 25, 'e': 1}, dtype=object)
如何访问“a”、“b”、“c”、“d”等?
【问题讨论】:
-
我从来没有见过这样的东西,但似乎你有一个包含字典的数组。像
data[0]这样的常规切片似乎不适用于此类对象。一个快速的解决方案是将您的数组转换为这样的字典:dict_data = data.tolist(),然后使用键值进行切片。在您的情况下,dict_data['a']将返回array([123,...])等等。 -
@gionni 太棒了,非常感谢。
-
不客气! ;-)
-
Spyder 提供了变量资源管理器,这在这种情况下非常方便。让我们把数据放在上面的问题中。如果有人在 Eclipse 或 IPython 中工作,
print(data.files)会生成一个列表['a','b','c','d','e']。然后,data['a']将返回a的内容,如上述评论中的@gionni。
标签: python arrays python-2.7 object spyder