読み方 : ナンパイ / ナムパイ

NumPy

概要

NumPyとは、Pythonで数値計算を効率的に行うための基盤となるオープンソースライブラリ。多次元配列を高速に扱うためのデータ構造と、線形代数や統計解析、フーリエ変換などの数学的演算を提供し、科学技術計算やデータ分析の基礎ライブラリとして広く使われている。
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の数値計算エコシステム全体の土台として機能している。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。