はじめに
この実験では、対角成分が 1 でその他の成分が 0 の行列を作成する NumPy の eye() 関数について学びます。この関数を理解するために、構文、パラメータといっしょにいくつかの例を扱います。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替えて、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
NumPy ライブラリをインポートする
NumPy ライブラリとその関数を使用する前に、それをインポートする必要があります。次のコードを使用してインポートします。
import numpy as np
eye() 関数を使って行列を作成する
eye() 関数を使って行列を作成します。この関数は、対角成分が 1 でその他の成分が 0 の行列を返します。
x = np.eye(4,4)
print(x)
出力:
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
主対角線から外れた対角成分を持つ行列を作成する
k パラメータを使用することで、主対角線から外れた対角成分を持つ行列を作成できます。k = 1 の場合、対角線は 1 つ右にシフトし、k = -1 の場合、対角線は 1 つ左にシフトします。k = 0 は主対角線を表します。
y = np.eye(4,4,k=1)
print(y)
出力:
array([[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.],
[0., 0., 0., 0.]])
整数型のデータ型の行列を作成する
dtype パラメータを int と指定することで、整数型のデータ型の行列を作成できます。
z = np.eye(4,4,dtype=int)
print(z)
出力:
array([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]])
行数と列数が異なる行列を作成する
eye() 関数において行数と列数を指定することで、任意の行数と列数の行列を作成することができます。
w = np.eye(3,4,k=-1,dtype=int)
print(w)
出力:
array([[0, 0, 0, 0],
[1, 0, 0, 0],
[0, 1, 0, 0]])
eye() 関数と identity() 関数の違い
identity() 関数は、対角成分が 1 でその他の成分が 0 の正方行列を作成します。一方、eye() 関数は、対角成分が 1 でその他の成分が 0 の任意の行数と列数の行列を作成します。
i = np.identity(4,dtype=int)
print(i)
出力:
[[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]]
まとめ
この実験では、対角成分が 1 でその他の成分が 0 の行列を作成する NumPy の eye() 関数について学びました。この関数を理解するために、構文、パラメータといっしょにいくつかの例も扱いました。