2017-11-20 9 views
0
a = np.diag(np.array([2,3,4,5,6]),k=-1) 

上記のコードでは、6 * 6行列を6 * 5行列に変更する方法を知りたいと思います。最初の行が0で、次の行が2で埋められます、3,4,5,6は対角線ですか?大変ありがとうございます形状付きのPython配列の作成

答えて

0

私はあなたが知りたいことを理解していません。あなたのコードで kが= 2、その後、 出力がされる場合のk> 0 は、結果として得られる行列は、kの余分な列を持っているかどう:

array([[0, 0, 2, 0, 0, 0, 0], 
    [0, 0, 0, 3, 0, 0, 0], 
    [0, 0, 0, 0, 4, 0, 0], 
    [0, 0, 0, 0, 0, 5, 0], 
    [0, 0, 0, 0, 0, 0, 6], 
    [0, 0, 0, 0, 0, 0, 0], 
    [0, 0, 0, 0, 0, 0, 0]]) 

そして、もしK < 0それはK余分な行を持っています例えば、もしK = -1を :

array([[0, 0, 0, 0, 0, 0], 
    [2, 0, 0, 0, 0, 0], 
    [0, 3, 0, 0, 0, 0], 
    [0, 0, 4, 0, 0, 0], 
    [0, 0, 0, 5, 0, 0], 
    [0, 0, 0, 0, 6, 0]]) 

及びk = 0は、その後、場合:

array([[2, 0, 0, 0, 0], 
    [0, 3, 0, 0, 0], 
    [0, 0, 4, 0, 0], 
    [0, 0, 0, 5, 0], 
    [0, 0, 0, 0, 6]]) 

Iはyと思います5 * 5の行列を作成して、行を追加したい。そして、あなたは今、2Dリストであり、あなたが好きな場所あなたが行を挿入することができ、この

a=a.tolist() 

を使用してそれを行うことができます。 あなたの結果にこれを行います。

a.insert(0,[0,0,0,0,0]) 
関連する問題