[NumPy-Tickets] [NumPy] #1431: accessing multiple fields in a recarray gives fields in wrong order

NumPy Trac numpy-tickets@scipy....
Tue Mar 16 11:44:12 CDT 2010

```#1431: accessing multiple fields in a recarray gives fields in wrong order
------------------------+---------------------------------------------------
Reporter:  samtygier   |       Owner:  somebody
Type:  defect      |      Status:  new
Priority:  normal      |   Milestone:
Component:  numpy.core  |     Version:
Keywords:              |
------------------------+---------------------------------------------------
when using the list in list notation to access multiple columns of a
record array the columns are returned in the order that they are stored in
the array, not in the order asked for.
{{{
>>> x = np.array([(1.5,2.5,(1.0,2.0)),(3.,4.,(4.,5.)),(1.,3.,(2.,6.))],
dtype=[('x','f4'),('y',np.float32),('value','f4',(2,2))])
>>> x[['x','y']]
array([(1.5, 2.5), (3.0, 4.0), (1.0, 3.0)],
dtype=[('x', '<f4'), ('y', '<f4')])
>>> x[['y','x']]
array([(1.5, 2.5), (3.0, 4.0), (1.0, 3.0)],
dtype=[('x', '<f4'), ('y', '<f4')])
}}}

this different to what happens with a 2d array, where they are returned in

{{{
>>> a = array([0,0.1,0.2,0.3,0.4])
then
>>> a[[0,1,4]]
array([ 0. ,  0.1,  0.4])
>>> a[[4,1,0]]
array([ 0.4,  0.1,  0. ])
}}}

I suggest that the it would be more consistent and predictable for the
order to be the one asked for in both cases.

The current behaviour for the recarray was undocumented until today, so
there can't be many people using it. therefore it might be worth break
backwards compatibility to make the interface better.