python - 如何创建上三角矩阵

标签 python matrix

我需要创建给定一组值的上三角矩阵(顺序不是输入)。矩阵可能太大而无法手动输入。 np.triu 仅提供现有矩阵的上三角,而不是创建新矩阵。

我正在做一些优化以获得协方差矩阵的上三角乔列斯基根的参数。我的参数是一些协方差矩阵的上三角乔莱斯基根。为了初始化,我需要将参数值放在上三角的位置。

array([[ a,  b,  c],
       [ 0,  d,  e],
       [ 0,  0,  f]])

最佳答案

我也有同样的问题,所以我不想在没有答案的情况下留下这个问题。根据@DSM的建议,我创建了以下函数:

import numpy as np

def create_upper_matrix(values, size):
    upper = np.zeros((size, size))
    upper[np.triu_indices(3, 0)] = values
    return(upper)

c = create_upper_matrix([1, 2, 3, 4, 5, 6], 3)
print(c)

这可以通过添加从数据推断所需矩阵大小的功能来改进,但目前它依赖于用户提供该信息。

关于python - 如何创建上三角矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43243940/

相关文章:

python - 使用 Python 进行优化 (scipy.optimize)

python - 如何搜索 IRC 消息中的姓名?

python - 使用多重处理进行文件处理 - python

java - Java/COLT 中 "long"的矩阵?

python - 使用 python for 循环创建时间列表

php - 将嵌套的 PHP 数组转换为嵌套的 Python 字典

c++ - CUDA 卷积 - 不可分离内核

c++ - C中1的稀疏矩阵的快速矩阵乘法

r - 将稀疏矩阵 (dgCMatrix) 转换为 realRatingMatrix

matlab - 将所有非零矩阵元素设置为 1(同时保持其他元素为 0)