I'd like to create a sympy expression that lambdify's to numpy.maximum(). How can I do this? Attempt:
import numpy as np
import sympy
x = sympy.Symbol('x')
expr = sympy.Max(2, x)
f = sympy.lambdify(x, expr)
f(np.arange(5))
This leads to:
ValueError: setting an array element with a sequence.
Looks like a sympy.Maximum()
analogy to np.maximum()
was proposed in sympy issue 11027 but never implemented.
A clunky workaround:
maximum = sympy.Function('maximum')
expr2 = maximum(2, x)
f2 = lambda c: sympy.lambdify((maximum, x), expr2)(np.maximum, c)
f2(np.arange(5))
But I'd really prefer an expression that directly lambdify's to what I want.