从0-d numpy数组恢复dict

and*_*res 52 python dictionary load numpy save

发生的事情是我(错误地)用命令保存了一个字典numpy.save()(没有显示错误消息),现在我需要恢复字典中的数据.当我加载它时,numpy.load()它有类型(numpy.ndarray)并且是0-d,所以它不再是字典而且我无法访问其中的数据,0-d数组不能索引,所以做类似的事情

mydict = numpy.load('mydict')
mydict[0]['some_key'] 
Run Code Online (Sandbox Code Playgroud)

不起作用.我也试过了

recdict = dict(mydict)
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.

当我保存字典时,为什么numpy没有警告我numpy.save()

有没有办法恢复数据?

提前致谢!

unu*_*tbu 71

使用mydict.item()得到的数组元素为Python标量.

>>> import numpy as np
>>> np.save('/tmp/data.npy',{'a':'Hi Mom!'})
>>> x=np.load('/tmp/data.npy')
>>> x.item()
{'a': 'Hi Mom!'}
Run Code Online (Sandbox Code Playgroud)


Rob*_*ern 23

可以使用空元组索引0-d数组:

>>> import numpy as np
>>> x = np.array({'x': 1})
>>> x
array({'x': 1}, dtype=object)
>>> x[()]
{'x': 1}
>>> type(x[()])
<type 'dict'>
Run Code Online (Sandbox Code Playgroud)