使用 '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