2017-01-31 13 views
0

私は6でマトリクス6を持っていると私は対角要素なしに上三角行列を表示したい:上三角行列のカスタム表示?

私がやっていること:私の意見では

Rand_num = np.random.rand(6,6) 
for i in range(0,6): 
     for j in range(1,6): 
       print Rand_num[i][j] 

をアルゴリズムは次のようにする必要があります:

for row = 1 to 6 
    for col = (row+1) to 6 
      print Rand_num[row][col] 

Pythonを使ってどうすればいいですか?

問題は別のリストから来た要素で行列を埋めることになります。 たとえば、15要素のTmpelemリストがあり、それらを新しい行列(6x6)に割り当てたいとします。対角要素のない三角行列を作成する順序。あなたがあなたのマトリックスの作成のために行ったようにnumpyのを使用して罰金だと仮定すると、

答えて

2

は、ちょうどnumpy.triu

In[126]: samp = np.random.rand(3, 3) 

In[127]: np.triu(samp, k=1) 
Out[127]: 
array([[ 0.  , 0.77524531, 0.16391846], 
     [ 0.  , 0.  , 0.12625853], 
     [ 0.  , 0.  , 0.  ]]) 

kを使用すると、残りはゼロにされなければならない、それ以下の対角線の下を意味します。あなたの編集を1として


あなたが値のリストにいくつかの既存の行列の上部の三角形の領域を変更するに予定がある場合、あなたはここで4を示すために(4,1)を使用して、正しいインデックスを取得するためにnumpy.triu_indicesを使用することができますメイン行列の上に4つの行列と1つの対角線分。

In[142]: matr = np.arange(1, 17).reshape(4,4) 

In[143]: matr 
Out[143]: 
array([[ 1, 2, 3, 4], 
     [ 5, 6, 7, 8], 
     [ 9, 10, 11, 12], 
     [13, 14, 15, 16]]) 

In[144]: matr[np.triu_indices(4, 1)] = np.arange(100, 106) 

In[145]: matr 
Out[145]: 
array([[ 1, 100, 101, 102], 
     [ 5, 6, 103, 104], 
     [ 9, 10, 11, 105], 
     [ 13, 14, 15, 16]]) 
+0

驚くべきことだその仕事することができます!私を助けてくれるほどあなたよりも! – Monica

-1

それはミッチ

によって示されるようにnumpyのはnp.triu_indicesを持っていることを意味しますが、ループはあまりにも

A=np.zeros((6,6)) 

A 
Out[31]: 
array([[ 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0.]]) 

ulst = [i for i in range(1,16)] 

ulst 
Out[33]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 

ulst_gen = (i for i in ulst) 

for i in range(6): 
    for j in range(6): 
     if j > i: 
      A[i,j] = next(ulst_gen) 

A 
Out[36]: 
array([[ 0., 1., 2., 3., 4., 5.], 
     [ 0., 0., 6., 7., 8., 9.], 
     [ 0., 0., 0., 10., 11., 12.], 
     [ 0., 0., 0., 0., 13., 14.], 
     [ 0., 0., 0., 0., 0., 15.], 
     [ 0., 0., 0., 0., 0., 0.]]) 
関連する問題