numpy.diagflatは、引数に渡した配列の要素を全て、対角線上に配置して、他の要素を0埋めした新しい配列を戻す関数です。
実際のコードで確認していきましょう。
1. numpy.diagflatの使い方
まずは、numpy.diagflatの書き方を確認しましょう。
それではサンプルコードを見ながら、実際の使い方を確認していきましょう。
1.1. 要素を対角線に配置し他を0埋めした配列を生成
np.diagflatは、引数に渡した配列の要素を全て対角線に配置して、他の要素を0で埋めた新しい配列を生成します。
早速、以下のコードをご覧ください。
''' 要素を対角線に配置し他を0埋めした配列を生成'''
import numpy as np
np.diagflat([1, 2, 3])
多次元配列を渡した場合も、全ての要素を対角線に配置します。以下のコードは、2次元配列の例ですが、3次元配列でも4次元配列でも同様です。
''' 多次元配列を渡しても同じ '''
# 2次元配列を生成
arr = np.arange(1, 5).reshape(2, 2)
print('arr: \n', arr)
# 要素を対角線に配置した配列を生成
diag = np.diagflat(arr)
print('diag: \n', diag)
1.2. 対角線の位置を指定
オプション引数「k=」を指定すると、対角線の位置を指定することができます。指定した値の分だけ上から右にずれていきます(負の値を指定した場合は下から左にずれる)。
なお、この場合、生成する2次元配列のshapeは、shape(n, n+|k|)になります(nは関数の引数に渡す配列の要素数)。
以下のコードをご確認ください。
''' 「k=」でどの対角線に要素を配置するかを指定 '''
diag = np.diagflat([1, 2, 3], k=1)
print(diag)
なお、わざわざ「k=」と書かなくても、以下のコードのように整数を渡すだけでも構いません。
''' こちらの書き方でも可(負の値を指定) '''
diag = np.diagflat([1, 2, 3], -1)
print(diag)
このように負の値を指定すると、対角線が下から左にずれていくこともご確認ください。
2. まとめ
以上がnumpy.diagflatの使い方です。対角線の操作については、以下の関数も併せて確認しておくと良いでしょう。
コメント