Ce qui s'est passé, c'est que j'ai (par erreur) enregistré un dictionnaire avec la commande numpy.save()
(aucun message d'erreur affiché) et maintenant je dois récupérer les données dans le dictionnaire. Quand je le charge avec numpy.load()
il a le type (numpy.ndarray
) Et est 0-d, donc ce n'est plus un dictionnaire et je ne peux pas accéder aux données qu'il contient, 0- les tableaux d ne sont pas indexables, ce qui fait quelque chose comme
mydict = numpy.load('mydict')
mydict[0]['some_key']
ne fonctionne pas. J'ai aussi essayé
recdict = dict(mydict)
mais cela n'a pas fonctionné non plus.
Pourquoi numpy ne m'a pas averti lorsque j'ai enregistré le dictionnaire avec numpy.save()
?
Existe-t-il un moyen de récupérer les données?
Merci d'avance!
Utilisez mydict.item()
pour obtenir l'élément de tableau sous la forme d'un scalaire Python).
>>> import numpy as np
>>> np.save('/tmp/data.npy',{'a':'Hi Mom!'})
>>> x=np.load('/tmp/data.npy')
>>> x.item()
{'a': 'Hi Mom!'}
Les tableaux 0-d peuvent être indexés à l'aide du Tuple vide:
>>> import numpy as np
>>> x = np.array({'x': 1})
>>> x
array({'x': 1}, dtype=object)
>>> x[()]
{'x': 1}
>>> type(x[()])
<type 'dict'>