【问题标题】:Turning a list into a diagonal matrix将列表变成对角矩阵
【发布时间】:2015-07-24 13:03:06
【问题描述】:

由于数据矩阵的 SVD,我有一个奇异值列表。 Python 输出为列表而不是对角矩阵。如果不将奇异值转换为对角矩阵,则无法组合矩阵以找到回归系数。

简单地说,这就是我所拥有的:

U, W, Vt = np.linalg.svd(Absorbance_Data)
print U.shape, W.shape, Vt.shape

输出:

(71, 71), (71,), (512, 512)

为了计算 PCR 的回归系数,我需要让矩阵 W 成为 (71, 512) 对角矩阵(允许零值)。

感谢您的帮助。

【问题讨论】:

  • 原来你可以使用 np.diag 来生成对角矩阵,但我想添加 441 列的 0 值。

标签: python matrix pca svd


【解决方案1】:

您首先将W 对角化,然后附加零:

W = np.diag(W)
W = np.append(W, np.zeros(71, 441), axis=1)

print(W.shape)
=> (71, 512)

这会将一个 71x441 的零数组附加到 W 的 71x71 对角化。 axis=1 按列附加零。

【讨论】:

    猜你喜欢
    • 2011-12-21
    • 2017-05-03
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多