由于数据矩阵的SVD,我有一个奇异值列表。 Python输出为列表而不是对角矩阵。如果不将奇异值转换为对角矩阵,则组合矩阵以找到回归系数是不可能的。
简单地说,这就是我所拥有的:
U, W, Vt = np.linalg.svd(Absorbance_Data)
print U.shape, W.shape, Vt.shape
输出:
(71, 71), (71,), (512, 512)
我需要将矩阵W变为(71,512)对角矩阵(允许零值),以便计算PCR的回归系数。
感谢您的帮助。
答案 0 :(得分:0)
首先对角化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
以列方式附加零。