From: Travis O. <oli...@ee...> - 2006-07-10 19:04:19
|
John Parejko wrote: >Howdy! I just wanted to voice my agreement with this statment by Erin Sheldon: > > > I brought up the issue a while back of having a simple way to > > access the field names of an array. The quick summary: accessing > > field names has some oddness that needs cleaning up. > >Sometimes a['name'], sometimes a.field('name'). I vastly prefer the first >version; it has become my favored way of dealing with my FITS and ASCII >data. But using the bracket notation sometimes gives an error, and I >haven't quite figured out what the circumstances are. > >Also, "for name in a.dtype.fields:" or "for name in a.fields:" would be >very, very handy. > >Could this sort of thing get put in before the beta (or is it already in, >and I missed the boat, again?). > > > It's actually there already. The issue at hand is that the fields dictionary contains an additional member keyed by a -1. This odd-ball entry in the dictionary is to obtain an "ordered" list of the fields. The order is determined by the offset. This is a warty situation but the functionality is there. Probably a better solution is to add a names attribute to the dtype object that returns the ordered list. In C, the PyArray_Descr structure would grow an additional names member that contains the ordered list of names instead of sticking it as a -1 key entry in the fields dictionary which was and is a hack. Let's schedule this for pre 1.0 beta -Travis |