2016-12-13 56 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) 
    ]])