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)