SciPy

 

 
数値積分

 
線形代数

 
統計分析

 
特殊関数

 

SciPy (科学技術計算パッケージ)

 SciPy (Scientific Computing Tools for Python) はオープンソースで開発された Python の科学技術計算用パッケージです。Linux, Windows, macOS, Unix, Android といった、ほとんどすべてのオペレーティングシステム (OS) において無料で利用できます。

 SciPy は積分や特殊関数、線型代数、高速フーリエ変換などを処理する高度な数値解析用サブパッケージを多数提供します。研究者は個々のプログラムの詳細に立ち入ることなく、Python の IDE (統合開発環境) や Jupyter Notebook に数行のコードを記述するだけで、必要な数値解析アルゴリズムを活用できます。

 SciPy は Python、NumPy (高速配列処理パッケージ)、各種の数値計算用サブパッケージ、Matplotlib (グラフ描画パッケージ) をベースに構築されており、これらを統合的に活用することで、大規模なデータ分析や数値シミュレーションを効率的に処理します。
 

SciPyに含まれるサブパッケージ

  • scipy.constants:Constants (定数)
  • scipy.io:Input and output (入力と出力)
  • scipy.signal:Signal processing (信号処理)
  • scipy.linalg:Linear algebra (線形代数演算)
  • scipy.sparse.linalg:Sparse linear algebra (スパース配列線型代数演算)
  • scipy.integrate : Integration and ODEs (積分と常微分方程式)
  • scipy.special:Special functions (特殊関数)
  • scipy.interpolate:Interpolation (データ補間)
  • scipy.fftpack:Discrete Fourier transforms (離散フーリエ変換)
  • scipy.optimize:Optimization and Root Finding (最適化アルゴリズム)
  • scipy.cluster : Clustering package (クラスタリング)
  • scipy.odr:Orthogonal distance regression (直交距離回帰)
  • scipy.sparse:Sparse matrices (スパース行列)
  • scipy.stats:Statistical functions (統計関数)
  • scipy.spatial:Spatial algorithms and data structures (空間アルゴリズムとデータ構造)
  • scipy.ndimage:Multi-dimensional image processing (多次元画像処理)
  • scipy.misc:Miscellaneous routines (その他のルーティン)

Scipy のインストール方法とバージョン確認

 SciPy は Anaconda に同梱されています。コマンドプロンプトで pip コマンドを使用してインストールする場合、SciPy 公式サイト (scipy.org) は以下のコマンドを使うように推奨しています。

python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

 すでにインストールされている SciPy のバージョンは以下のコードで取得できます。

import scipy as sp

# scipyのバージョンを確認
sp.version.full_version
'1.3.1'

 

Mastering SciPy

 SciPy について網羅的に扱った書籍や Web サイトは日本では出版されていないので、SciPy に関する知識を深めたいなら英語を読むしかありません。私は Mastering SciPy と Learning SciPy for Numerical and Scientific Computing - Second Edition を参考にしています。
 

 Mastering SciPy は数学者やエンジニア、あるいはコンピュータ科学者に向けて書かれた本格的な SciPy マニュアルです。学術的目的を達するための実践的手法が丁寧に解説されています。本書の章立ては以下の通りです(目次を日本語に訳しておきました)。

  • 第1章 線形代数
  • 第2章 数値補間と近似曲線
  • 第3章 数値微分と数値積分
  • 第4章 非線形方程式と最適化問題
  • 第5章 常微分方程式における初期値問題
  • 第6章 コンピュータ幾何学
  • 第7章 記述統計
  • 第8章 推定とデータ分析
  • 第9章 画像処理

 もちろん全部読む必要はありませんが、本書の前書きにあるように、第1章はあらゆる科学技術計算の基礎となるので、後に続く章を理解するためにも一読しておいたほうがいいかもしれません。あるいは当サイトの Python で学ぶ線形代数 をぜひ活用してください。