On Oct 29, 2010, at 3:58 PM, Ian Stokes-Rees wrote: > >> Note that there are various extant projects that I think attempt to >> provide similar functionality to what you're wanting (unless I badly >> misread your original email, in which case apologies): >> http://projects.scipy.org/numpy/wiki/NdarrayWithNamedAxes > > Having looked into it more, I think recarray is probably what I want. I > need to play with this and see how easy it is to convert ndarrays into > recarrays.
your_rec=your_array.view(np.recarray) > The main thing is that I'm looking for something *really* simple that > would, truly, just allow the conversion of: > > myarray['myaxis'] > > to > > myarray.myaxis Attribute-style access is IMHO the only interest of recarrays over regular structured arrays. Note that it comes to a cost... > My suggestion is to define __getattr__ directly on the ndarray class. > This is, TTBOMK, only called if an attribute is *not* found on the > object. In this event, prior to throwing an AttributeError exception, > the object could check to see if the specified attribute exists as a > named axis/dimension of the multi-dimensional array, and if so, return > this. Otherwise, carry on with the AttributeError exception. > > I've spent an hour looking at the numpy code (my first time), and I > don't see any obvious way to do this, since ndarray is (AFAICT) a pure-C > object with auto-generated wrappers, which seems to preclude (easily) > adding a "__getattr__(self,attr)" method to the class. If someone can > point me in the right direction, I'll keep looking into this, otherwise > I'm giving up and will just try and use recarray. Indeed. Check how recarray does it, for example. _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion