SymPy:纯 Python 写的符号计算库,数学公式随便算

SymPy 是一个用纯 Python 编写的开源符号计算库,在 GitHub 上拿到了 14,681 个 Star:

正文顶部截图

README区域截图

SymPy 能做符号运算、代数化简、微积分求解、矩阵运算、概率统计、几何变换等各种数学工作。它完全用 Python 写成,不依赖任何外部数学库,装上就能用。

举个例子,展开一个三角函数的泰勒级数:

from sympy import Symbol, cos
x = Symbol('x')
e = 1/cos(x)
print(e.series(x, 0, 10))
# 1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)

三行代码搞定,不需要翻数学手册查公式。

SymPy 还支持方程求解。一元二次方程、线性方程组、微分方程都能处理:

from sympy import symbols, solve
x = symbols('x')
print(solve(x**2 - 5*x + 6, x))
# [2, 3]

解出来的结果是精确的符号值,不是浮点近似。在需要严格推导的场景下,这个特性很有用。

安装方式

最直接的方式是 pip 安装:

pip install sympy

也可以通过 Anaconda 安装:

conda install -c anaconda sympy

从源码安装也行,克隆仓库后执行 pip install . 即可。

项目背景

SymPy 从 2005 年开始开发,最初由 Ondřej Čertík 一个人写。2007 年起项目开始参加 Google Summer of Code,此后每一届都没落下,大量核心模块都来自学生贡献。Pearu Peterson 在 2007 年重写了计算核心,性能提升了 10 到 100 倍。

项目自带一个叫 isympy 的交互式控制台,启动后自动加载符号计算命名空间,省去每次手动 import 的步骤。在终端里敲 isympy 就能进入一个预配置好的 Python 环境,直接开始做数学推导。

SymPy 支持 LaTeX 表达式的解析和渲染,可以把符号表达式输出为 LaTeX 代码,方便嵌入学术论文或技术文档。在 Jupyter Notebook 中工作时,SymPy 的打印模块能直接渲染出可读的数学公式。

协议和社区

项目采用 BSD 协议发布,由 NumFocus 提供赞助支持。社区有 Gitter 聊天室和 Google 邮件列表,遇到问题可以去那里提问。文档站点提供了完整的 API 参考和使用教程。

从本科数学作业到科研论文中的公式推导,从工程计算到算法原型验证,SymPy 的应用场景覆盖了大部分需要用符号数学的场合。如果你的日常工作和 Python 数学计算有关,值得花时间了解一下这个库。

Py 的应用场景覆盖了大部分需要用符号数学的场合。如果你的日常工作和 Python 数学计算有关,值得花时间了解一下这个库。

更多推荐