Я использую модуль Numberxpr для Python.
Я пытаюсь запустить следующий фрагмент кода:
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}')
Но идея в том, чтобы иметь одно выражение.
Кто-нибудь знает, как я мог бы переписать эту формулу, чтобы она работала?
Заранее спасибо.