SymPy は Python で数式処理を行うためのライブラリだ。数値計算ではなく、数式そのものを扱える点が特徴である。
数式処理とは
通常の Python で計算すると、結果は数値になる。
import math math.sqrt(8) # 2.8284271247461903
一方、SymPy を使うと数式のまま扱える。
from sympy import sqrt sqrt(8) # 2*sqrt(2)
が という形式で返ってくる。これが数式処理の基本的な考え方だ。
インストール
pip でインストールできる。
pip install sympy
基本的な使い方
SymPy では、まずシンボル(変数)を定義し、それを使って式を組み立てる。
from sympy import symbols, expand x = symbols('x') expr = (x + 1)**2 expand(expr) # x**2 + 2*x + 1
シンボルを定義
式を組み立てる
関数で処理
NumPy との違い
NumPy は数値計算に特化しており、配列演算が高速に行える。SymPy は数式の厳密な操作に向いている。
NumPy
数値計算向け。配列を高速に処理し、近似値を返す。
SymPy
数式処理向け。式を厳密に展開・簡約化し、記号のまま結果を返す。
用途に応じて使い分けるのがよい。数値シミュレーションなら NumPy、式変形や証明の補助なら SymPy が適している。