Python/SciPy
< Python
SciPy
編集SciPy(サイパイ)は、Pythonプログラミング言語のためのオープンソースの科学技術計算ライブラリで、特に数値計算やデータ解析に便利な多くの機能を提供します。SciPyは、NumPy(Numerical Python)ライブラリの上に構築されており、線形代数、最適化、統計、信号処理、画像処理など、幅広い数学的操作をサポートしています。
特徴
編集SciPyは、数値計算とデータ解析に関連する多くのアルゴリズムを効率的に実装しています。主な特徴は以下の通りです。
- 線形代数(
scipy.linalg
): 行列計算、固有値問題、行列分解など - 最適化(
scipy.optimize
): 最適化問題の解決、数値的な最適解の探索 - 積分(
scipy.integrate
): 数値積分のための関数 - 補間(
scipy.interpolate
): データ点間の補間 - 信号処理(
scipy.signal
): フィルタリング、周波数解析、スペクトル解析 - 統計(
scipy.stats
): 確率分布、統計的推測、検定 - 画像処理(
scipy.ndimage
): 多次元配列の画像処理
使用方法
編集SciPyは、主にNumPyと連携して使用されるため、まずNumPyライブラリをインポートする必要があります。以下は、SciPyを使用するための基本的なコード例です。
- integrate.py
import numpy as np from scipy import integrate # 定積分の計算(例:x^2の積分を0から1まで) result, error = integrate.quad(lambda x: x**2, 0, 1) print("積分結果:", result) print("積分の誤差:", error)
このコードは、scipy.integrate.quad
関数を使って、x²の関数を0から1まで積分しています。
インストール
編集SciPyはPythonのパッケージ管理システムであるpipを使って簡単にインストールできます。以下のコマンドでインストールできます。
pip install scipy
また、NumPyも必要であるため、次のように同時にインストールすることも可能です。
pip install numpy scipy
使用例
編集線形代数
編集SciPyのscipy.linalg
モジュールを使って、行列の固有値を計算する例を示します。
- linalg.py
from scipy.linalg import eig import numpy as np # 2x2行列の固有値を計算 A = np.array([[1, 2], [3, 4]]) eigenvalues, eigenvectors = eig(A) print("固有値:", eigenvalues) print("固有ベクトル:", eigenvectors)
最適化
編集SciPyのscipy.optimize
モジュールを使って、関数の最小値を求める例です。
- optimize.py
from scipy.optimize import minimize # 最小化する関数 def objective(x): return x**2 + 3*x + 2 # 最適化 result = minimize(objective, 0) # 初期値は0 print("最小値:", result.fun) print("最適化されたパラメータ:", result.x)