SymPy – Lambdify()函数

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)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程