Pythonでは数値計算をおこなうライブラリとしてNumpyというパッケージが提供されている。

Numerical Pythonを略して、NumPyという名称が付けられている。

NumPyは強力な配列計算機能を持っているため、Pythonでデータ分析をおこなう上で重要なツールとなるだろう。

NumPyの主な機能

NumPyでは以下のようなデータ処理機能を提供している。

  • 高速な配列計算。
    データの変更やフィルタリング、変換などの様々なデータ操作。
  • 一般的な配列操作。
    ソートや集合演算など。
  • データセットの統合や結合。
  • 配列内での条件分岐処理。
    forループを使わずにif文的な処理を各要素に対しておこなう。
  • グループ単位でのデータ操作。

NumPyのインストール方法

JupyterNotebookなどの開発環境を使用していれば、すでにインストールが済んでいるだろうが、一応公式のインストール方法を紹介しておこう。

ターミナルで以下のコマンドを叩く。

pip install numpy

これだけで後は勝手にインストール完了まで進めてくれる。

NumPyは巨大なデータ配列を効率的に操作できる

NumPyを使う理由として、まずメモリ使用量がPython標準のシーケンス(リストやディクショナリ)に比べて、小さくなるという点が挙げられる。

また、配列全体の計算をNumPyでおこなう場合、forループを使用しないため実行速度が早くなるというメリットもある。

これを実際のコードを見て確認してみよう。

import numpy as np

np_arr = np.arange(1000000)
python_list = list(range(1000000))

%time for _ in range(10): np_arr * 2
# CPU times: user 9.4 ms, sys: 21 µs, total: 9.42 ms
# Wall time: 9.33 ms
    
%time for _ in range(10): python_list * 2
# CPU times: user 160 ms, sys: 16.1 ms, total: 176 ms
# Wall time: 176 ms

NumPyの配列と、Python標準の配列に100万個の要素を作り、for文で配列を2倍する処理を10回繰り返した時の実行速度を計測した。

結果を見て分かるとおり、NumPyを使った方が圧倒的に実行速度が早いことが分かる。

まとめ

今回の記事を読んでくれれば、配列(リスト)をPythonで扱う上で、NumPyがどれだけ強力なものであるかを理解してもらえたはずだ。

今後の記事では、より詳しいNumPyの使い方を紹介していく。