SymPy - Lambdify() 函数



lambdify 函数将 SymPy 表达式转换为 Python 函数。如果要在多个值范围内计算某个表达式的值,evalf() 函数的效率不高。lambdify 充当 lambda 函数,但会将 SymPy 名称转换为给定数字库(通常为 NumPy)的名称。默认情况下,lambdify 执行数学标准库中的操作。

>>> expr=1/sin(x) 
>>> f=lambdify(x, expr) 
>>> f(3.14)

上述代码片段输出以下内容 −

627.8831939138764

该表达式的变量可能超过一个。在这种情况下,lambdify() 函数的第一个参数是变量列表,后面是待计算的表达式。

>>> expr=a**2+b**2 
>>> f=lambdify([a,b],expr) 
>>> f(2,3)

上述代码片段输出以下内容 −

13

但是,要将 numpy 库用作数字后端,我们必须将其定义为 lambdify() 函数的参数。

>>> f=lambdify([a,b],expr, "numpy")

我们在上述函数中使用了两个 numpy 数组作为两个参数 a 和 b。对于 numpy 数组,执行时间相当快。

>>> import numpy 
>>> l1=numpy.arange(1,6) 
>>> l2=numpy.arange(6,11) 
>>> f(l1,l2)

上述代码片段输出以下内容 −

array([ 37, 53, 73, 97, 125], dtype=int32)

广告