NumPy
NumPy は多次元配列を効率的に扱うためのライブラリです。 科学技術計算や機械学習など、ベクトルや行列の演算が多用される分野では事実上の標準です。
Pythonには、組み込み型の list、標準ライブラリの配列 array が用意されていますが、NumPy が扱うのは numpy.ndarray 型という別物です。
はじめに
NumPyのインストールとインポート
Python 言語のライブラリとしてのインストールになるので、一般の Python3 の環境であれば、Terminalから以下のコマンドでインストールできます。
$ pip3 install numpy
import する際は、以下のように np という名称を与えるのが一般的です。
import numpy as np
Google Colaboratory では Jupyter Notebook で利用できるライブラリーが「すべてインストール済み」という前提なので、ローカル環境での作業のように、必要なライブラリのインストールを行う必要はなく、コードセルに import 文を書くだけで使うことができます。
配列の定義
NumPyが扱う配列は numpy.ndarray という特殊なデータ型になります。
arr = np.array( [1,2,3] ) # リストから配列作成 print( arr ) >[1 2 3] print( arr[1] ) >2
np.array( [ [1,2] , [3,4] ] ) # 2次元配列の構築 print( arr ) >[[1 2] [3 4]]
ndarray の生成
numpy.arrange()
arr = np.arange( 3 ) # range(N) に対応する配列 print( arr ) > [ 0 1 2 ]
arr = np.arrange( 0, 1, 0.2 ) # start, stop, step の順に指定 print( arr ) > [ 0.0 0.2 0.4 0.6 0.8 ]
演算
行列の和
arr1 = np.array( [ [1, 2] , [3, 4] ] ) arr2 = np.array( [ [1, 0] , [0, 1] ] ) print( arr1 + arr2 ) >[ [2 2] [3 5] ]
行列の積
arr1 = np.array( [ [1, 2] , [3, 4] ] ) arr2 = np.array( [ [1, 2, 3] , [4, 5, 6] ] ) print( np.dot( arr1, arr2 ) ) >[ [ 9 12 15] [19 26 33] ]
ユニバーサル関数の利用
NumPy ndarrayでは、ユニバーサル関数と呼ばれる専用の組み込み関数の利用によって、配列の全要素に対して一挙に計算することができます。配列の全要素に対してループ処理を行う必要がないので、コードがシンプルになります。
以下の例では、区間 [ 0 〜 20 ) の 0.1 刻みの x の値に対して、関数 \( y = cos(x) \) の計算を一挙に行っています。matplotlib.pyplot の plot関数は、x,y の組み合わせをグラフにしてくれます。
import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 20, 0.1) y = np.cos(x) plt.plot(x,y) plt.show()