NumPy
概要

Pythonの標準的なリスト構造は汎用性が高い反面、大量の数値データを扱う演算には処理速度の面で限界がある。NumPyではC言語で実装された高速な多次元配列オブジェクト「ndarray」(N-dimensional array)を中心に設計されており、大規模な数値計算をPythonの標準リストと比較して最大で数十倍から数百倍高速に実行できる。
ndarrayはすべての要素が同じデータ型で格納される均質な配列であり、要素ごとのループ処理を記述することなく配列全体に対して一括で演算を適用できる「ブロードキャスト」と呼ばれる機能を備えている。例えば、100万要素の配列にスカラ値を加算する場合、100万回繰り返すforループを書く代わりに「array + 1」と簡潔に記述するだけでよく、内部的にはC言語から生成された高速な機械語のコードがこれを実行する。
NumPyが提供する機能は多岐にわたり、行列の積や逆行列、固有値分解などの線形代数演算、乱数生成、様々な統計量の算出、フーリエ変換、整列(ソート)、探索(サーチ)などが標準で利用できる。これにより、配列の各要素に対して三角関数や指数関数を一括で適用したり、行列計算や平均値の算出などを効率的に行うことができる。配列中心の計算方式は、画像データ、表形式データ、センサー値の列などを扱う用途と相性がよく、科学技術分野だけでなく、AIやデータサイエンスの分野でも広く使われている。
1995年に前身となる「Numeric」が開発され、2006年に競合の「Numarray」の機能を統合してNumPyが誕生した。Pythonの主要な科学技術計算ライブラリの「pandas」や「scikit-learn」「TensorFlow」「PyTorch」などもNumPyのndarrayを基本的なデータ構造として採用しており、Pythonの数値計算エコシステム全体の土台として機能している。