【问题标题】:Numpy: convert an array to a triangular matrixNumpy:将数组转换为三角矩阵
【发布时间】:2013-11-18 18:51:00
【问题描述】:

我正在寻找一种将线性数组转换为三角矩阵的内置方法。由于我未能找到一个,因此我正在寻求实施一个方面的帮助。

想象一个像这样的数组:

In [203]: dm
Out[203]: array([ 0.80487805,  0.90243902,  0.85365854, ...,  0.95121951,
                  0.90243902,  1.        ])

In [204]: dm.shape
Out[204]: (2211,)

我想将此数组转换为三角矩阵或对称矩形矩阵。

 In [205]: reshapedDm = dm.trian_reshape(67, 67)

如何将 trian_reshape 实现为从一维数组返回三角矩阵的函数?

【问题讨论】:

    标签: python numpy linear-algebra


    【解决方案1】:
    >>> tri = np.zeros((67, 67))
    >>> tri[np.triu_indices(67, 1)] = dm
    

    详情请参阅doc for triu_indices。要获得下三角矩阵,请使用np.tril_indices 并将偏移量设置为-1 而不是1

    【讨论】:

      猜你喜欢
      • 2022-10-25
      • 1970-01-01
      • 2022-11-29
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 2013-06-30
      相关资源
      最近更新 更多