我需要创建给定一组值的上三角矩阵(顺序不是输入)。矩阵可能太大而无法手动输入。 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/