为什么
"GET /###/chat HTTP/1.1" 400
工作,但
w = data[np.where(np.logical_and(data['RA']>=(ra_in-0.1), data['RA']<=(ra_in+0.1)))]
不??? 这给出了“ValueError:无效的参数数量”错误。 'in'值是浮点数;数据是numpy.ndarrays。
答案 0 :(得分:2)
documentation of numpy.logical_and
说:
insert
正如您所看到的, 如何在两个类似数组对象numpy.logical_and(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
上执行logical_and
的其他参数除外{ {1}},没有其他类似数组的对象的地方。因此,简而言之, x1
仅执行逻辑和两个数组。
您可以使用x2
的级联来执行请求的操作:
logical_and
所以我们在这里将无效的 转换为logica_and
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)
))]
。
此外,您可以使用更优雅的逻辑和logical_and(A,B,C,D)
:
logical_and(logical_and(A,B),logical_and(C,D))
请注意,由于&
绑定的优先级较高,因此您需要添加括号。但请注意,我们仍然有一些级联,因为:
data[np.where(
(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))
相当于(((data['RA']>=(ra_in-0.1)) & (data['RA']<=(ra_in+0.1))) & (data['DEC']>=(dec_in-0.1))) & (data['DEC']<=(dec_in+0.1))
。