【问题标题】:Python: How do I insert an Identity Matrix below a list of arrays?Python:如何在数组列表下方插入一个身份矩阵?
【发布时间】:2016-12-13 00:55:47
【问题描述】:

我有一个 (3x5) 矩阵,由 3 个数组 - np.ones(5) 和 2 行 5 个值组成。比如:

 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 个数组,然后是一个完整的数据框,因此整个矩阵不会被识别为矩阵。

【问题讨论】:

  • 看起来你想要vstack,但我对“维度 (28) 的单位矩阵”感到困惑。 “28”从何而来?

标签: python arrays numpy matrix identity


【解决方案1】:

简单地连接数组:

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.]])

【讨论】:

    【解决方案2】:

    只需将*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)
         ]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      相关资源
      最近更新 更多