What happened is that I (by mistake) saved a dictionary with the command numpy.save()
(no error messages shown) and now I need to recover the data in the dictionary. When I load it with numpy.load()
it has type (numpy.ndarray
) and is 0-d, so it is not a dictionary any more and I can't access the data in it, 0-d arrays are not index-able so doing something like
mydict = numpy.load('mydict')
mydict[0]['some_key']
doesn't work. I also tried
recdict = dict(mydict)
but that didn't work either.
Why numpy didn't warn me when I saved the dictionary with numpy.save()
?
Is there a way to recover the data?
Thanks in advance!
Use mydict.item()
to obtain the array element as a Python scalar.
>>> import numpy as np
>>> np.save('/tmp/data.npy',{'a':'Hi Mom!'})
>>> x=np.load('/tmp/data.npy')
>>> x.item()
{'a': 'Hi Mom!'}