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)