Hi, I found the following inconsistency between the advertised and the actual behviour of structured arrays:
on http://docs.scipy.org/doc/numpy/user/basics.rec.html it says in the section "Accessing multiple fields at once" Notice that the fields are always returned in the same order regardless of the sequence they are asked for. Fortunately that does not seem to be the case in my simple test (see below). Is that a change in behaviour I can rely on or am I somehow lucky in this particular example? Thanks, Hanno In [596]: test_array = np.ones((10),dtype=[('a', float), ('b',float)]) In [597]: test_array Out[597]: array([(1.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 1.0), (1.0, 1.0)], dtype=[('a', '<f8'), ('b', '<f8')]) In [598]: test_array['b']*=2 In [599]: test_array Out[599]: array([(1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0)], dtype=[('a', '<f8'), ('b', '<f8')]) In [600]: test_array[['b','a']] Out[600]: array([(2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0)], dtype=[('b', '<f8'), ('a', '<f8')]) In [601]: test_array[['a','b']] Out[601]: array([(1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0), (1.0, 2.0)], dtype=[('a', '<f8'), ('b', '<f8')]) In [602]: test_ab = test_array[['a','b']] In [603]: test_ba = test_array[['b','a']] In [604]: test_ba Out[604]: array([(2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0), (2.0, 1.0)], dtype=[('b', '<f8'), ('a', '<f8')]) In [605]: np.__version__ Out[605]: '1.6.1' -- Hanno Klemm [email protected] _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
