【问题标题】:numpy merge upper and lower triangularnumpy合并上下三角形
【发布时间】:2020-09-29 03:00:53
【问题描述】:

我基本上想做与this question相反的事情。我有两个矩阵被np.trilnp.triu 分割,我想将它们重新组合成一个矩阵。

A = array([[ 0. ,  0. ,  0. ],
           [ 0.1,  0. ,  0. ],
           [ 0.6,  0.5,  0. ]])

B = array([[ 0. ,  0.4,  0.8],
           [ 0. ,  0. ,  0.3],
           [ 0. ,  0. ,  0. ]])

我希望它看起来像

array([[ 0. ,  0.4,  0.8],
       [ 0.1,  0. ,  0.3],
       [ 0.6,  0.5,  0. ]])

是否有内置的 numpy 函数来执行此操作?

【问题讨论】:

    标签: python numpy matrix


    【解决方案1】:

    你的意思是A+B

    import numpy
    A = numpy.array([[ 0. ,  0. ,  0. ],
               [ 0.1,  0. ,  0. ],
               [ 0.6,  0.5,  0. ]])
    
    B = numpy.array([[ 0. ,  0.4,  0.8],
               [ 0. ,  0. ,  0.3],
               [ 0. ,  0. ,  0. ]])
    
    print A+B
    

    返回

    array([[ 0. ,  0.4,  0.8],
           [ 0.1,  0. ,  0.3],
           [ 0.6,  0.5,  0. ]])
    

    【讨论】:

      【解决方案2】:

      如果值是字符串,那么只要 B 是上三角形就可以。

      A = np.array([[ 0. ,  0. ,  0. ],
                 [ '0.1**',  0. ,  0. ],
                 [ 0.6,  '0.5**',  0. ]])
      
      B = np.array([[ 0. ,  0.4,  '0.8***'],
                 [ 0. ,  0. ,  0.3],
                 [ 0. ,  0. ,  0. ]])
      
      for i in range(0,len(A)):
          for j in range(0,i):
              B[i,j]=A[i,j]
                  
      B
      

      返回

      array([['0.0', '0.4', '0.8***'],
             ['0.1**', '0.0', '0.3'],
             ['0.6', '0.5**', '0.0']], dtype='<U32')
      

      【讨论】:

        猜你喜欢
        • 2019-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多