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の使い方を紹介していく。