带有'and'运算符的 python numexp 模块中的错误



我正在使用 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

相关内容

  • 没有找到相关文章