评估来自sympy的积分作为lambda函数

时间:2014-02-17 04:22:42

标签: python function python-2.7 lambda sympy

我正在使用python的sympy模块。我这样做:

x= Symbol('x')
integrate(x**2+2,x)

答案是:

x**3/3 + 2*x

现在,问题是:有没有办法让这个答案成为x的lambda函数?

1 个答案:

答案 0 :(得分:1)

是的,请使用lambdify

>>> f = lambdify(x, integrate(x**2+2,x))
>>> f(2)
6.666666666666666

如果您想将此与numpy一起使用,请将"numpy"设置为lambdify的第二个参数

>>> import numpy as np
>>> f = lambdify(x, integrate(x**2+2,x), "numpy")
>>> f(np.arange(10))
array([   0.        ,    2.33333333,    6.66666667,   15.        ,
         29.33333333,   51.66666667,   84.        ,  128.33333333,
        186.66666667,  261.        ])

(你可能想要import numpy as npimport sympy as sp而不是直接导入名字,如果你这样做,因为两者的功能不混合)