- SymPy 教程
- SymPy - 主页
- SymPy - 简介
- SymPy - 安装
- SymPy - 符号计算
- SymPy - 数字
- SymPy - 符号
- SymPy - 替换
- SymPy - sympify() 函数
- SymPy - evalf() 函数
- SymPy - Lambdify() 函数
- SymPy - 逻辑表达式
- SymPy - 查询
- SymPy - 简化
- SymPy - 导数
- SymPy - 积分
- SymPy - 矩阵
- SymPy - 函数类
- SymPy - 四元数
- SymPy - 求解器
- SymPy - 绘图
- SymPy - 实体
- SymPy - 集合
- SymPy - 打印
- SymPy 实用资源
- SymPy - 快速指南
- SymPy - 实用资源
- SymPy - 讨论
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)
广告