2016-12-13 61 views
0

我有一個由3個數組組成的(3x5)矩陣 - np.ones(5)和2行5個數值。喜歡的東西:Python:如何在陣列列表下插入標識矩陣?

1 1 1 1 1 
2 3 4 4 5 
4 3 2 3 4 

我要低於這個像添加尺寸(28)的身份矩陣:

1 1 1 1 1 
2 3 4 4 5 
4 3 2 3 4 
1 0 0 0 0 
0 1 0 0 0 
0 0 1 0 0 
0 0 0 1 0 
0 0 0 0 0 

我該怎麼辦呢?

我的代碼是這樣的:

A = ([[np.ones(5), np.array(df['Beta'].values), np.array(-1*df.Beta.values), pd.DataFrame(np.identity(5))]]) 

這使我3個陣列,然後整個數據幀,因此整個矩陣不被識別爲一個矩陣。

+0

看起來像你想'vstack',但我通過「維度的單位矩陣困惑(28 )」。 「28」從哪裏來? – FTP

回答

0

只是在連接陣列:

a=np.ones((3,3)) 
b=np.eye(3) 
np.concatenate((a,b)) 
#array([[ 1., 1., 1.], 
#  [ 1., 1., 1.], 
#  [ 1., 1., 1.], 
#  [ 1., 0., 0.], 
#  [ 0., 1., 0.], 
#  [ 0., 0., 1.]]) 
0

只要堅持*np.identity(5)到你的列表:

A = ([[ np.ones(5), 
     np.array(df['Beta'].values), 
     np.array(-1*df.Beta.values), 
     pd.DataFrame(np.identity(5)), 
     *np.identity(5) 
    ]])