📜  SymPy-Lambdify()函数

📅  最后修改于: 2020-11-05 04:41:43             🧑  作者: Mango


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")

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

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

上面的代码片段给出了以下输出-

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