Sauvegarde et chargement de Python dict avec savemat résultats dans l'erreur
Voici un exemple minimal de l'erreur que j'obtiens. Si j'ai bien compris la documentation correctement, cela devrait fonctionner, mais il semble que je n'ai pas.
a={}
a['test1']=1
a['test2']=2
a['test3']=3
import scipy.io as io
io.savemat('temp',{'a':a})
b = io.loadmat('temp')
b['a'].keys()
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'keys'
Vous devez vous connecter pour publier un commentaire.
Vous semblent fonctionner sous l'hypothèse que
scipy.io.savemat
est destiné à être en mesure d'enregistrer un dictionnaire standard. Je ne crois pas que c'est le cas. Le dictionnaire argument tient les noms de tableaux numpy qui sont écrites dans le fichier Matlab. Si vous pouvez faire quelque chose comme ceciqui donne:
Il ressemble loadmat retourne recarray au lieu de dict.
J'ai vérifié avec scipy 0.9.0.
L'équivalent de
b['a'].keys()
serab['a'].dtype.names
.Exemples:
b['a'].dtype.names
ne retourne rien etb['a']['test1']
retourneTraceback (most recent call last): File "<input>", line 1, in <module> ValueError: field named test1 not found.