SciPy


 

 
Special functions (特殊関数)

 

SciPy概要

 SciPy (Scientific Computing Tools for Python) はオープンソースで開発された Python の科学技術計算用パッケージです。

 Linux, Windows, macOS, Unix, Android といった、ほとんどすべてのオペレーティングシステム (OS) において無料で利用できます。

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

 SciPy は Python、NumPy (高速配列処理パッケージ)、SciPyライブラリ (各種の数値計算アルゴリズム)、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.integrateIntegration and ODEs (積分と常微分方程式)
  • scipy.special:Special functions (特殊関数)
  • scipy.interpolate:Interpolation (データ補間)
  • scipy.fftpack:Discrete Fourier transforms (離散フーリエ変換)
  • scipy.optimize:Optimization and Root Finding (最適化アルゴリズム)
  • scipy.clusterClustering 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 (その他のルーティン)

Mastering SciPy

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

Mastering SciPy: Implement State-of-the-art Techniques to Visualize Solutions to Challenging Problems in Scientific Computing, With the Use of the Scipy Stack

新品価格
¥4,545から
(2019/9/21 22:23時点)

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

 第1章 線形代数

 第2章 数値補間と近似曲線

 第3章 数値微分と数値積分

 第4章 非線形方程式と最適化問題

 第5章 常微分方程式における初期値問題

 第6章 コンピュータ幾何学

 第7章 記述統計

 第8章 推定とデータ分析

 第9章 画像処理

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