[英]Selecting closest values by Euclidian distance from the mean from a numpy array
[英]Condtionally selecting values from a Numpy array returned from PyFITS
我已经在pyfits中打开了FITS文件。 HEADER文件读取XTENSION='BINTABLE'
,其DIMENSION= 52989R x 36C
带有36个列标签,例如'ZBEST'
, 'ZQUALITY'
, 'M_B'
, 'UB'
, 'PGAL'
等。
现在,我必须从“ ZQUALITY”大于2且“ PGAL”等于3的数据中选择对象。然后,必须遵循上述条件为相应对象的“ ZBEST”制作直方图。 我还必须为那些对象绘制“ M_B”与“ UB”。
最后,我想将“ ZBEST”切片为三个切片(zbest <0.5),(0.5 <zbest <1.0),(zbest> 1.0),并希望分别绘制直方图和它们的“ M_B”与“ UB”图。
我坚持选择符合两个条件的数据。 谁能告诉我如何从同时满足两个条件的数据中选择对象('ZQUALITY'> 2&'PGAL'== 3)? 我正在使用: data.field[('zquality' > 2) & ('pgal'==3)]
但它不起作用。
表达式data.field[('zquality' > 2) & ('pgal'==3)]
正在询问字符串 'zquality'
大于2(始终为true)且字符串 'pgal'
相等'pgal'
到3(也总是假)。
实际上,您data.field
可能会遇到异常,因为data.field
是PyFITS返回表的Numpy Recarray对象上的方法。
您需要类似data[(data['zquality'] > 2) & (data['pgal'] == 3)]
。
该表达式意味着“给我的‘zquality’列的行data
包含值大于2。然后给我的‘PGAL’列的行data
以等于三个值。现在给我的整行data
选择的来自两个行掩码的逻辑“和”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.