On Tue, Mar 16, 2010 at 12:23 PM, <josef.p...@gmail.com> wrote: > On Tue, Mar 16, 2010 at 12:04 PM, Sam Tygier > <sam.tyg...@hep.manchester.ac.uk> wrote: >> On Tue, Mar 16, 2010 at 11:34 AM, Skipper Seabold <jsseab...@gmail.com> >> wrote: >>>> so i always get the vales back in the original order. is the by design, or >>>> a bug? >>>> >>> >>> I've been bitten by this before too and asked the same question with >>> no response. I think it's just a limitation of the design of >>> structured arrays. >> >> i had a hunt for the code. and it seems easy to fix. >> its in numpy/core/_internal.py:301 >> >> --- numpy/core/_internal.py 2010-03-16 16:01:28.000000000 +0000 >> +++ numpy/core/_internal.py.old 2010-03-16 16:00:52.000000000 +0000 >> @@ -298,7 +298,7 @@ >> def _index_fields(ary, fields): >> from multiarray import empty, dtype >> dt = ary.dtype >> - new_dtype = [(name, dt[name]) for name in fields if name in dt.names] >> + new_dtype = [(name, dt[name]) for name in dt.names if name in fields] >> if ary.flags.f_contiguous: >> order = 'F' >> else:
Nice! That works for me. > You can file a ticket, but if this is a function that is already in > real use, then it would be an unpleasant break in the API > Yeah, I would have to change some code around, but I think this would be a worthwhile enhancement. Also worth noting that this wasn't documented anywhere. I only knew about it because Travis pointed it out on the list once. Skipper _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion