以下の内容はhttps://myenigma.hatenablog.com/entry/2025/02/13/203719より取得しました。


SciPyのサブモジュール概説


現場で使える!Python科学技術計算入門 NumPy/SymPy/SciPy/pandasによる数値計算・データ処理手法

目次

はじめに

先日、Pythonの科学計算ライブラリである

SciPyの概要を説明しました。

myenigma.hatenablog.com

 

こちらの記事でも説明した通り、

SciPyは様々な種類の科学計算に対応しているのですが、

使いやすいように、

それぞれの分野毎にサブモジュールで分割されています。

 

今回の記事では、

どんなサブモジュールがあるかを一覧で確認しつつ、

各公式ドキュメント(APIドキュメントやチュートリアル)へのリンクを

まとめた記事にしたいと思います。

今後、各サブモジュールの、より深い説明の記事も作成予定です。

 

SciPyのサブモジュール 

scipy.cluster: クラスタリング

名前の通り、データを自動的に分類する

クラスタリング関連のルーチンがまとまったサブモジュールです。

現時点では、大きく分けて2つのルーチン群が実装されており、

ベクトル量子化とkmean法によるクラスタリングに対応したvq(サブサブ)モジュールと

scipy.github.io

階層的クラスタリングとその可視化用のルーチンを実装した

hierarchyモジュールが実装されています。

scipy.github.io

 

APIドキュメント:

scipy.github.io

scipy.constants: 物理数学定数

このサブモジュールは、

物理や数学の定数がまとめられたサブモジュールです。

scipy.github.io

Pythonで、このような定数を使う場合は、

自分で実装するのではなく、

SciPyが定義しているパラメータを使うことができます。

 

APIドキュメント:

scipy.github.io

scipy.datasets: データセット

このサブモジュールは比較的最近導入されたものですが、

いくつかの科学演算の例やユニットテストで使う

データセットを取得するための

サブモジュールです。

 

SciPyのバイナリのサイズをできるだけ小さくするために、

このようなデータセットは、関数を呼ぶと、

ネットワーク経由でデータをダウンロードし、

そのデータをキャッシュできるような仕組みを使っています。

 

現在はデータセットとして、

画像データや信号処理用の信号データが提供されています。

 

APIドキュメント:

scipy.github.io

 

scipy.differentiate: 数値微分

こちらのサブモジュールも比較的最近導入されたものですが、

ある、ブラックボックスの関数に対して、

数値微分をするルーチンが集まったサブモジュールです。

 

APIドキュメント:

scipy.github.io

 

scipy.fft: フーリエ変換

こちらのサブモジュールは、

名前の通りですが、フーリエ変換を実施するルーチンのサブモジュールです。

 

元々は、FFTPACKいうFORTRANのフーリエ変換ライブラリをラップしたものを

scipy.fftpackというサブモジュールで提供していましたが、

scipy.github.io

そちらはすでにメンテナンスがストップされており、

scipy.fftに統合されています。

APIドキュメント:

scipy.github.io

チュートリアル :

scipy.github.io

 

scipy.integrate: 数値積分

このサブモジュールも名前の通り、

ある特定の関数に対して、

数値積分をするルーチンを集めたサブモジュールです。

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

 

scipy.interpolate: 補間

こちらのサブモジュールは、

様々な次元の様々なデータの補間を実施するための

ルーチンを集めたサブモジュールです。

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

参考記事:

myenigma.hatenablog.com

 

scipy.io: データ入出力

こちらは、様々なデータファイルを

読み書きするためのサブモジュールです。

例えば、下記のようなファイルの読み書きができます。

  • MATLABファイル

  • IDLファイル

  • Matrix Marketファイル

  • Unformatted Fortranファイル

  • Netcdfファイル

  • Harwell-Boeingファイル

  • Wav音声ファイル

  • Arffファイル

 

また、NumPyにもいくつかファイル読み書き用のルーチン群があります。

numpy.org

 

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

 

scipy.linalg: 線形代数

線形代数のルーチンをまとめたサブモジュールです。

NumPyにも同じようなサブモジュールがありますが、

numpy.org

SciPyの方は、LAPACKやBLASをラップしたものになっており、

APIの網羅性は高いですが、

NumPyの方は、FORTRAN無しでビルドできるような形で部分的に実装されています。

 

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

 

scipy.ndimage: n-次元画像処理

こちらは、n次元の画像処理を実施する

ルーチンが集まったサブパッケージです。

 

二次元の画像の場合は、OpenCVやPILなどのモジュールを使うことができますが、

より複雑な画像データを取り扱う医療関連や物理学関連の画像処理に

よく使われています。

 

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

 

scipy.odr: 直交距離回帰

こちらは、Fortranの直行距離回帰ライブラリである

ODRPACKをラップしたサブモジュールです。

www.netlib.org

 

API ドキュメント:

scipy.github.io

 

scipy.optimize: 最適化

こちらは最適化用のルーチンが集まった、

サブモジュールです。

単純な数理最適化のルーチンだけでなく、

数理最適化を使った、曲線フィッティングなどの

ルーチンも提供しています。

 

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

参考記事:

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

scipy.signal: 信号処理

こちらは信号処理におけるフィルタリングや

補間ルーチンが集まったライブラリです。

 

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

 

scipy.sparse: 疎行列

こちらのパッケージは、

疎行列を生成するためのルーチンや、

疎行列用の線形代数サブサブパッケージであるscipy.sparse.linalg

scipy.github.io

疎行列をベースとしたグラフ理論処理用のサブサブパッケージであるscipy.sparse.csgraph

scipy.github.io

が提供されているサブパッケージです。

 

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

scipy.github.io

 

scipy.spatial: 空間データ構造とアルゴリズム

こちらは、Computational geometryの分野である

空間データ構造やアルゴリズムが集まったサブパッケージです。

例えば、

  • ドロネー分解

  • 最近傍探索のためのKDTree

  • 座標変換

などのルーチンが提供されています。

 

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

参考記事:

myenigma.hatenablog.com

myenigma.hatenablog.com

 

scipy.special: 特殊関数

こちらは、数学や物理学で使用される特殊関数(ベータ関数や、ガンマ関数など)

をまとめたサブモジュールです。

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

 

scipy.stats: 統計・確率処理

こちらは統計・確率関連のルーチンが集まったサブモジュールです。

連続な確率密度関数から、

統計検定、サンプリング関連のルーチンが提供されています。

 

API ドキュメント:

scipy.github.io

チュートリアル:

scipy.github.io

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com


現場で使える!Python科学技術計算入門 NumPy/SymPy/SciPy/pandasによる数値計算・データ処理手法

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com




以上の内容はhttps://myenigma.hatenablog.com/entry/2025/02/13/203719より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14