このページではNumPyを使用して行列を生成する方法について学習します。
行列(2次元配列)
np.arrayの引数に2次元のリストを指定することで行列を表すことができます。たとえば、3行3列の行列を生成する場合は以下のように記述します。
x = np.array([[11 , 12, 13], [21, 22, 23], [31, 32, 33]]) # array([[11, 12, 13], # [21, 22, 23], # [31, 32, 33]])
データアクセス
では次に生成した行列に対してアクセスしてみましょう。
要素を取得
行、列の順で添字を指定すると行列要素を取得することができます。
import numpy as np x = np.array([[11 , 12, 13], [21, 22, 23], [31, 32, 33]]) # array([[11, 12, 13], # [21, 22, 23], # [31, 32, 33]]) x[0, 2] # 1行3列の13が取得できる x[2, 0] # 3行1列の31が取得できる
スライス
スライスを使用することができます。2 x 2の部分行列を抽出する場合、以下のように記述することができます。
import numpy as np x = np.array([[11 , 12, 13], [21, 22, 23], [31, 32, 33]]) x[0:2, 0:2] # array([[11, 12], # [21, 22]])
行の抽出
最初の添字だけを指定すると、行を抽出することができます。1行めを取得する場合、以下のように記述します。
import numpy as np x = np.array([[11 , 12, 13], [21, 22, 23], [31, 32, 33]]) row = x[0] # array([11, 12, 13])
列の抽出
スライスが可能ですので、行を全て(コロン)指定すると2番めの添字で列を抽出することができます。
import numpy as np x = np.array([[11 , 12, 13], [21, 22, 23], [31, 32, 33]]) col = x[:, 1] # 0から数えて1番目の列を取得 # array([12, 22, 32]) #