はじめに
Pythonの主なライブラリについてまとめてみました。
主なライブラリ
NumPy
配列構造をデータ型として提供し、数値演算や加工などの機能を持つ、Pythonにおけるデータ分析の基礎となるライブラリ。
NumPyが提供するndarray型は、効率的にデータを扱える内部構造となっている。1次元配列から多次元配列をサポートしている。配列の要素は全て同じデータ型で定義する。また、NumPyが提供するデータ型には、例えばnumpy.float32など、整数型や浮動小数点数型などがある。これらのデータ型は、データの精度などを厳密に決めてメモリを確保し、効率的な処理を可能にしている。
Numpyが持つ機能
pandas
データ加工ライブラリとして、1・2次元のデータ構造を提供し、データ加工やデータ読み書きなどの豊富な機能を持ち、Pythonでデータ分析を行うときに最も使われるライブラリ。
pandasは、1次元のSeries型と2次元のDataFrame型の2つを提供する。DataFrameはSeriesが複数列あるという集まりと考えるのがよい。Seriesは、全ての要素が1つのデータ型で統一される。つまり、DataFrameの1つの列は、1つのデータ型となる。なお、pandasは内部でNumPyのndarrayが使われているので、部分的にNumPyの機能も使える。
pandasが持つ機能
Matplotlib
Pythonの可視化ライブラリで、グラフを描画する。
MATLABの影響を強く受けて作られたライブラリ。主に2次元のグラフを得意としているが、3次元のグラフも描画出来る。
Matplotlibが持つ機能
Plotly
インタラクティブなグラフ描画を得意とする可視化ライブラリ。
様々な種類のグラフを作成でき、JavaScriptが内部で使われていることでズームイン/ズームアウトなどが可能。インタラクティブな地図の描画も出来る。
Plotlyが持つ機能
scikit-learn
機械学習を行うライブラリ。機械学習を始めるならscikit-learnの使い方を覚えることをおすすめする。
多くの機械学習アルゴリズムが実装されていて、統一的なインタフェースで様々な機械学習アルゴリズムの学習(訓練)から推論までサポートしている。scikit-learnは機械学習に関連する機能が充実している。サンプルデータの提供から、データの分割を行う様々な機能やモデル性能の評価を行う機能なども持っている。
scikit-learnでは、NumPyをベースとしたデータの受け渡しが可能。さらに、pandasのDataFrameもそのままデータとして使えるので、データ加工までをpandasで行い、機械学習にscikit-learnを使うことで、データ型をさほど意識せずに一連の処理を実装出来る。また、結果を可視化する際にはndarray型として出力されたデータをpandasのDataFrameに変換して加工し、Matplotlibに渡して可視化するということが多く行われている。
Scikit-learnが持つ機能
SciPy
科学技術計算を支えるライブラリ。
微分方程式の数値解析やフーリエ変換など、様々な演算・計算をサポートしている。内部的にはC言語やFORTRANで実装されており、効率的に演算が行われている。NumPyの配列(ndarray)をサポートしている。また、scikit-learnは内部でSciPyを使っており、機械学習に必要な演算はSciPyが支えている。
SciPyが持つ機能
そのほかのライブラリ
深層学習ライブラリ
深層学習(ディープラーニング)に使われるライブラリは、Pythonで扱えるものが多くある。
主なライブラリは次の3つ。
・TensorFlow
・PyTorch
・Keras
おわりに
ここまで読んでいただきありがとうございます!
参考文献
・Pythonデータ分析 実践ハンドブック 実務で使えるデータ加工のテクニック 単行本(ソフトカバー) – 2023/9/22
寺田 学 (著), 神沢 雄大 (著), @driller (著),
p.18-21