7
私は、同じ数の列と行を持つ2次元numpy配列を持っています。私はそれらを対角線上のより小さいアレイを有するより大きなアレイに配置したいと思う。開始行列を対角線上に置く頻度を指定することが可能でなければなりません。例えば:私はこの配列を望んでいた場合与えられたnumpy配列からブロック対角numpy配列を作成します。
a = numpy.array([[5, 7],
[6, 3]])
だから、対角線上の2回は、所望の出力は次のようになります。3回
array([[5, 7, 0, 0],
[6, 3, 0, 0],
[0, 0, 5, 7],
[0, 0, 6, 3]])
:
array([[5, 7, 0, 0, 0, 0],
[6, 3, 0, 0, 0, 0],
[0, 0, 5, 7, 0, 0],
[0, 0, 6, 3, 0, 0],
[0, 0, 0, 0, 5, 7],
[0, 0, 0, 0, 6, 3]])
高速な方法はありますこれをnumpyメソッドで実装し、開始配列の任意のサイズに対して(開始配列に同じ数の行と列があると考えていますか?) numpy.kron
の
はどのようにあなたがこれを行うのでしょうか?私はブロック対角行列にする必要がある80の異なる行列を持っています。 –
@ Will.Evo全部で80の同じ形ですか? – Divakar
はいすべて同じ形 –