具体地说,这些值来自一个.fits文件,我正在使用astropy。你知道吗
从本质上讲,我得到了一个大的数据数组,其中的对象每个都包含多个分类列和一个对应的行,行中有一个字符串或整数来标识它们。例如,数组中的一个对象可以是
CLASS == GALAXY
SPECPRIMARY = 1
PROGNAME == MAIN
ZWARNING == 0
PRIMTARGET == 128
SUBCLASS = STRINGHERE
FIBERID == INTEGERHERE
etc...
但是,每个对象都有许多列和可能的标识符。所以,我想用np.哪里仅获取包含具有这些可能标识符的数组的数组
fits_data['CLASS'] == "GALAXY",
fits_data['SPECPRIMARY']==1,
fits_data['PROGNAME']=='main',
fits_data['ZWARNING']==0,
fits_data['PRIMTARGET']==64 OR 128 OR 256
所以,我猜它看起来像
allitems = np.where(fits_data['CLASS'] == "GALAXY",
fits_data['SPECPRIMARY']==1,
fits_data['PROGNAME']=='main',
fits_data['ZWARNING']==0,
fits_data['PRIMTARGET']==(64 || 128 || 256))
但是我知道这是不对的;我需要CLASS、SPECPRIMARY、PROGNAME和ZWARNING都具有这些精确值,而PRIMTARGET可以是64、128或256。你知道吗
有人能把我推向正确的方向吗?谢谢
使用
logical_and
和logical_or
以及逻辑索引可能是最好的方法:我非常喜欢python的内置函数,它将给定的函数成对地应用于iterable中的所有输入。所以得到所有输入的
logical_or
或logical_and
组合。你知道吗相关问题 更多 >
编程相关推荐