NumPy入門 行列(2次元配列)生成

このページでは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])
#