まとめ
カテゴリ | ライブラリ | 特徴・用途 |
---|---|---|
前処理 | Pandas | 表形式データの操作・分析 |
NumPy | 高速な数値計算・配列操作 | |
計算 | NumPy | ベクトル・行列演算 |
SciPy | 数値解析・統計処理 | |
SymPy | 記号計算(微分・積分など) | |
保存 | HDF5 | 高速なバイナリデータ保存 |
CSV | 汎用性の高いテキスト形式 | |
可視化 | Matplotlib | 高度なグラフ描画 |
Seaborn | 統計データの可視化 |
詳細
前処理(データの整理・変換)
Pandas
データフレーム(表形式データ)の操作を得意とするライブラリ。データの読み込み、クリーニング、変換、統計処理などに優れる。
-
メリット:
- CSVやExcel、SQLなど多様なデータソースを扱える。
-
DataFrame
型で直感的にデータを操作できる。 - 強力なフィルタリング・グループ化・統計処理機能。
-
デメリット:
- 巨大なデータ(数百万行以上)の処理は遅くなりがち。
- NumPy配列よりもメモリ消費が大きい。
NumPy
数値計算を高速に行うためのライブラリ。多次元配列 (ndarray
) を用いて効率的にデータを扱える。
-
メリット:
-
ndarray
はPandasより軽量で、高速に処理できる。 - 多くの科学技術計算ライブラリと相性が良い(SciPy, scikit-learn など)。
-
-
デメリット:
-
ndarray
には行・列のラベルがないため、可読性が低い。 - データの加工やクレンジングにはPandasほどの機能がない。
-
機能の重複
- 共通点: Pandas と NumPy はどちらもデータの前処理に使われる。
-
使い分け:
- 行・列のラベルを扱うなら Pandas
- 数値計算のパフォーマンスを重視するなら NumPy
計算(数値解析・線形代数・統計処理)
NumPy
行列計算や統計処理など、科学技術計算の基礎となるライブラリ。
-
メリット:
- ベクトル・行列演算を高速に実行できる。
- 科学技術計算のほとんどのライブラリ(SciPy, TensorFlow, PyTorch など)が依存。
-
デメリット:
- 高度な数値解析機能はSciPyに依存することが多い。
SciPy
数値計算を目的としたライブラリで、線形代数、統計解析、最適化、信号処理などの機能を提供する。
-
メリット:
- 最適化 (
scipy.optimize
)、統計 (scipy.stats
)、微分方程式 (scipy.integrate
) など、幅広い分野に対応。 - NumPyと組み合わせることで強力な計算環境を構築できる。
- 最適化 (
-
デメリット:
- 一部の機能は専門的で学習コストが高い。
SymPy
数式処理(記号計算)を行うライブラリ。数式の展開・微分・積分などをシンボリックに処理できる。
-
メリット:
- 数式を解析的に扱える(例えば、代数的な解を求める)。
- 数学的な表記がそのままPythonコードとして扱える。
-
デメリット:
- 数値計算には向かず、大規模な計算は遅くなる。
機能の重複
- 共通点: NumPy, SciPy, SymPy はどれも数学的な計算を行う。
-
使い分け:
- 行列演算・ベクトル演算なら NumPy
- 数値解析や線形代数なら SciPy
- 代数的な計算(微分・積分・因数分解)なら SymPy
ファイリング(データの保存・読み書き)
HDF5(h5py, PyTables)
大規模なデータを効率的に保存・読み書きするためのライブラリ。
-
メリット:
- バイナリ形式なので、CSVよりも高速で大容量のデータを扱える。
- 階層構造を持つデータを保存可能。
-
デメリット:
- 可読性が低く、テキストエディタなどで直接編集しにくい。
CSV(Pandasを利用)
データの保存・読み書きに使われる一般的な形式。
-
メリット:
- 人間が直接読める形式。
- Excelや他のソフトウェアとの互換性が高い。
-
デメリット:
- 読み込み・書き込みが遅い(特に大規模データ)。
- メタデータ(データ型情報など)を保持できない。
機能の重複
- 共通点: HDF5とCSVはどちらもデータの保存に使用される。
-
使い分け:
- 大規模データやバイナリ形式なら HDF5
- 可読性や互換性を重視するなら CSV
可視化(データのグラフ・図表化)
Matplotlib
Pythonで最も基本的な可視化ライブラリ。折れ線グラフ、棒グラフ、ヒストグラムなどを描画できる。
-
メリット:
- 細かいカスタマイズが可能。
- 他のライブラリ(Pandas, SciPy, seabornなど)と統合しやすい。
-
デメリット:
- コードがやや冗長になりやすい。
Seaborn
Matplotlibをベースにした統計的データ可視化ライブラリ。データフレームをそのまま扱える。
-
メリット:
- 美しいデフォルトデザイン。
- Pandasと親和性が高い。
-
デメリット:
- Matplotlibほど細かいカスタマイズができない。
機能の重複
- 共通点: Matplotlib, Seaborn はどちらもデータの可視化を行う。
-
使い分け:
- 細かいカスタマイズをしたいなら Matplotlib
- 統計的な可視化なら Seaborn