在numpy docs的一次访问多个字段部分中,说:
请注意,无论请求的顺序如何,这些字段总是以相同的顺序返回。
该文档还给出了一个示例,如下所示:
>>> 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')])
但是,我自己使用 numpy 1.6.1 运行了代码并得到了不同的结果:
In [20]: 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))])
In [21]: x[['x','y']]
Out[21]:
array([(1.5, 2.5), (3.0, 4.0), (1.0, 3.0)],
dtype=[('x', '<f4'), ('y', '<f4')])
In [22]: x[['y','x']]
Out[22]:
array([(2.5, 1.5), (4.0, 3.0), (3.0, 1.0)],
dtype=[('y', '<f4'), ('x', '<f4')])
这种行为是从 numpy 1.6 更改为 1.7 还是我错过了什么?
编辑我已经在 numpy 1.7.1 中测试了代码,结果与 numpy 1.6 相同。