尝试查找具有2个以上逻辑条件的python numpy索引

尝试查找具有2个以上逻辑条件的python numpy索引,python,numpy,logic,where,logical-operators,Python,Numpy,Logic,Where,Logical Operators,为什么 w = data[np.where(np.logical_and(data['RA']>=(ra_in-0.1), data['RA']<=(ra_in+0.1)))] w=data[np.其中(np.logical_和(data['RA']>=(RA_in-0.1),data['RA']=(RA_in-0.1),data['RA']=(dec_in-0.1),data['dec']表示: 如您所见,除了关于如何在两个类似数组的对象x1和x2上执行logical\u和的附加

为什么

w = data[np.where(np.logical_and(data['RA']>=(ra_in-0.1), data['RA']<=(ra_in+0.1)))]
w=data[np.其中(np.logical_和(data['RA']>=(RA_in-0.1),data['RA']=(RA_in-0.1),data['RA']=(dec_in-0.1),data['dec']表示:

如您所见,除了关于如何在两个类似数组的对象
x1
x2
上执行
logical\u和
的附加参数外,没有其他类似数组的对象。因此简而言之
logical\u和
只在两个数组上执行逻辑和

您可以使用
logica\u和
s的级联来执行请求的操作:

data[np.where(
    np.logical_and(
        np.logical_and(data['RA']>=(ra_in-0.1), data['RA']<=(ra_in+0.1),
        np.logical_and(data['DEC']>=(dec_in-0.1), data['DEC']<=(dec_in+0.1)
    ))]
请注意,由于
&
绑定的优先级更高,因此需要添加方括号。但是,请注意,我们仍然有一些级联,因为:

(data['RA']>=(ra_in-0.1)) & (data['RA']<=(ra_in+0.1)) & (data['DEC']>=(dec_in-0.1)) & (data['DEC']<=(dec_in+0.1))
(data['RA']>=(RA_-in-0.1))&(data['RA']=(dec_-in-0.1))&(data['dec']=(RA_-in-0.1))&(data['RA']=(dec_-in-0.1))&(data['dec']表示:

如您所见,除了关于如何在两个类似数组的对象
x1
x2
上执行
logical\u和
的附加参数外,没有其他类似数组的对象。因此简而言之
logical\u和
只在两个数组上执行逻辑和

您可以使用
logica\u和
s的级联来执行请求的操作:

data[np.where(
    np.logical_and(
        np.logical_and(data['RA']>=(ra_in-0.1), data['RA']<=(ra_in+0.1),
        np.logical_and(data['DEC']>=(dec_in-0.1), data['DEC']<=(dec_in+0.1)
    ))]
请注意,由于
&
绑定的优先级更高,因此需要添加方括号。但是,请注意,我们仍然有一些级联,因为:

(data['RA']>=(ra_in-0.1)) & (data['RA']<=(ra_in+0.1)) & (data['DEC']>=(dec_in-0.1)) & (data['DEC']<=(dec_in+0.1))

(数据['RA']>=(RA_in-0.1))&(数据['RA']=(dec_in-0.1))&(数据['dec']=(RA_in-0.1))&(数据['RA']=(dec_in-0.1))&(数据['dec']因为
logical_和
采用了两个这样的向量?所有剩余的参数都是关于如何处理和的规范。因为
logical_和
采用了两个这样的向量?所有剩余的参数都是关于如何处理和的规范。Hmmm,(a)我可以,但是(b)那段代码抛出了一个语法错误,你需要关闭,但是,这真的是做numpy逻辑的最好方法吗?逻辑和的级联???@npross:不,我根本不会使用
逻辑和
,除非你需要一些额外的选项。你可以使用
&
。不,我得到::---------------------------------------------------------------------------在()1 data[np.where(--->2 data['RA']>=(RA_in-0.1)和data['RA']=(dec_in-0.1)和data['dec']@nposs:yes,但您应该添加括号。
&
运算符的优先级高于
Hmmm,(a)我可以,但(b)那段代码抛出了一个语法错误,你需要关闭,但是,这真的是做numpy逻辑的最好方法吗?逻辑和的级联???@npross:不,我根本不会使用
逻辑和
,除非你需要一些额外的选项。你可以使用
&
。不,我得到::---------------------------------------------------------------------------()1 data[np.其中(--->2 data['RA']>=(RA_in-0.1)和data['RA']=(dec_in-0.1)和data['dec']@nposs:是的,但您应该添加括号。
&
运算符的优先级高于

(data['RA']>=(ra_in-0.1)) & (data['RA']<=(ra_in+0.1)) & (data['DEC']>=(dec_in-0.1)) & (data['DEC']<=(dec_in+0.1))
(((data['RA']>=(ra_in-0.1)) & (data['RA']<=(ra_in+0.1))) & (data['DEC']>=(dec_in-0.1))) & (data['DEC']<=(dec_in+0.1))