使用 'and' 运算符的 python numexp 模块出错
Error in python numexp module with 'and' operator
我正在为 python 使用 numexpr 模块。
我正在尝试 运行 下一个代码片段:
import numexpr as ne
def main():
result = ne.evaluate('where((1 > 9) & (where(1 > 9, 9, 1) == 0), 2, 3)')
print(f'Result: {result}')
if __name__ == "__main__":
main()
但是 numexpr
抛出以下错误:
TypeError: unsupported operand type(s) for &: 'bool' and 'ConstantNode'
但是,如果我在单独的表达式中提取冲突部分,它就可以工作。
def main():
intermediate_result = ne.evaluate('where(1 > 9, 9, 1) == 0')
result = ne.evaluate(f'where((1 > 9) & {intermediate_result}, 2, 3)')
print(f'Result: {result}')
但我的想法是只有一个表达式。
有谁知道我如何重写这个公式才能让它发挥作用?
提前致谢。
&
是按位 and
运算符。为什么不直接使用 and
?
我正在为 python 使用 numexpr 模块。 我正在尝试 运行 下一个代码片段:
import numexpr as ne
def main():
result = ne.evaluate('where((1 > 9) & (where(1 > 9, 9, 1) == 0), 2, 3)')
print(f'Result: {result}')
if __name__ == "__main__":
main()
但是 numexpr
抛出以下错误:
TypeError: unsupported operand type(s) for &: 'bool' and 'ConstantNode'
但是,如果我在单独的表达式中提取冲突部分,它就可以工作。
def main():
intermediate_result = ne.evaluate('where(1 > 9, 9, 1) == 0')
result = ne.evaluate(f'where((1 > 9) & {intermediate_result}, 2, 3)')
print(f'Result: {result}')
但我的想法是只有一个表达式。 有谁知道我如何重写这个公式才能让它发挥作用?
提前致谢。
&
是按位 and
运算符。为什么不直接使用 and
?