Je ne publie généralement pas de questions sur ces forums, mais j'ai cherché partout et je n'ai rien trouvé sur ce problème. Je travaille avec des tableaux structurés pour stocker des données expérimentales. J'utilise des titres pour stocker des informations sur mes champs, en l'occurrence les unités de mesure. Quand j'appelle numpy.lib.io.flatten_dtype() sur mon DTYPE, je reçois:En utilisant numten flatten_dtype avec dtypes structurés qui ont des titres
ValueError: too many values to unpack
File "c:\Python25\Lib\site-packages\numpy\lib\_iotools.py", line 78, in flatten_dtype
(typ, _) = ndtype.fields[field]
Je ne voudrais pas vraiment, sauf que numpy.genfromtxt() appelle numpy.lib.io.flatten_dtype() , et je dois être en mesure d'importer mes données à partir de fichiers texte. Je me demande si j'ai fait quelque chose de mal. Flatten_dtype() n'est-il pas destiné à supporter les titres? Existe-t-il une solution de rechange pour genfromtxt()?
Voici un extrait de mon code:
import numpy
fname = "C:\\Somefile.txt"
dtype = numpy.dtype([(("Amps","Current"),"f8"),(("Volts","Voltage"),"f8")])
myarray = numpy.genfromtxt(fname,dtype)
Merci pour la solution de contournement. Cela fonctionne pour moi, mais c'est un peu difficile à généraliser. Je fais beaucoup de traitement de données, et je travaille sur un projet qui automatisera beaucoup de ce que je fais. J'espérais utiliser ces tableaux structurés comme conteneur de données pour l'ensemble du projet. Malheureusement, plus je m'y attarde, plus ces titres semblent après coup dépourvus de tout support. Je pense à monkey corrigeant le numpy.lib.io.flatten_dtype() incriminé. Je sais que ce n'est généralement pas une bonne pratique, mais dans ce cas, cela semble être la voie la plus facile. Des pensées? – Emma
J'ai ajouté du code montrant comment flatten_dtype peut être modifié avec un singe. Je pense que l'utilisation d'un patch de singe serait une solution rapide, mais bien sûr, il serait beaucoup plus satisfaisant de corriger ce bug de façon à ce que personne ne soit affecté par ce problème à l'avenir. Pour cela, vous pouvez déposer un ticket sur http://projects.scipy.org/numpy/report et/ou poster une question sur la liste de diffusion numpy-discussion (http://scipy.org/Mailing_Lists).). Les développeurs ont lu cette liste de diffusion et devraient être en mesure de vous donner de meilleurs conseils que je ne peux. Peut-être même le réparer, si c'est un bug. – unutbu
Merci beaucoup, je vais le faire. – Emma