首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从PyFITS返回的Numpy数组中有条件地选择值

从PyFITS返回的Numpy数组中有条件地选择值
EN

Stack Overflow用户
提问于 2014-04-23 21:34:20
回答 1查看 228关注 0票数 0

我已经在pyfits中打开了一个FITS文件。头文件读取带有36个列标记的DIMENSION= 52989R x 36CXTENSION='BINTABLE',如'ZBEST''ZQUALITY''M_B''UB''PGAL'等。

现在,我必须从数据中选择'ZQUALITY‘大于2& 'PGAL’等于3的对象。然后,我必须为符合上述条件的相应对象的'ZBEST‘制作一个直方图。此外,我还必须为这些对象绘制'M_B‘和'UB’。

最后,我想把' zbest‘分成三个切片(zbest < 0.5),(0.5 1.0),并分别绘制它们的直方图和'M_B’与'UB‘图。

我坚持选择符合这两个条件的数据。谁能告诉我如何从满足两个条件('ZQUALITY‘>2和'PGAL’== 3 )的数据中选择对象?我使用的是like:data.field[('zquality' > 2) & ('pgal'==3)],但它不起作用。

EN

回答 1

Stack Overflow用户

发布于 2014-04-24 03:56:31

表达式data.field[('zquality' > 2) & ('pgal'==3)]请求字符串'zquality'大于2(始终为真)且字符串'pgal'等于3(也始终为假)的字段。

实际上,你很可能会得到一个异常,因为data.field是PyFITS返回表的Numpy recarray对象上的一个方法。

你想要像data[(data['zquality'] > 2) & (data['pgal'] == 3)]这样的东西。

这个表达式的意思是“给我data的'zquality‘列包含的值大于2的行。然后给我data的'pgal’列的值等于3的行。现在给我从两个行掩码的逻辑'and‘中选择的data的全部行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23246013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档