NumPy

NumPy

NumPyとは

NumPy(ナムパイ)とは、Pythonにおける科学計算の基盤となるライブラリで、高性能な多次元配列(ndarray)オブジェクトと、それを操作するための関数群を提供します。Numerical Pythonの略称で、データサイエンスや機械学習のほぼすべてのPythonライブラリがNumPyに依存しています。

表:NumPyの要点まとめ
ひとことで言うとPythonで数値計算を高速に行うための基盤ライブラリ。
何がうれしいか配列をまとめて計算できるので、ループを書くより何十倍も速い。
注意点配列の形(shape)の不一致がエラーの原因になりやすい。

ndarrayの特徴

NumPyの中核であるndarray(N-dimensional array)は、同一型の要素からなる多次元配列です。C言語で実装されているため、Pythonのリストと比較して数十倍から数百倍高速な数値計算が可能です。ベクトル化演算により、ループを書かずに配列全体に対する演算を効率的に実行できます。

図:NumPyが速い理由
1Pythonのループ1件ずつ処理して遅い
▶
2NumPy配列にする同じ型でまとめて持つ
▶
3まとめて計算C言語レベルで一括処理
▶
4数十倍高速大量データも現実的に

NumPyの主な機能

ブロードキャスティング(異なる形状の配列間の演算)、インデクシングとスライシング、線形代数演算(行列積、逆行列、固有値分解など)、フーリエ変換、乱数生成、統計関数(平均、標準偏差、相関など)、配列のリシェイプや結合など、科学計算に必要な機能を幅広くカバーしています。

NumPyの役割

NumPyはPythonの科学計算エコシステムの基盤であり、Pandas、SciPy、scikit-learn、TensorFlow、PyTorchなどのライブラリがNumPyのndarrayを基礎として構築されています。データサイエンスにおけるPythonの人気を支える最も重要なライブラリの一つです。