python – 如何使用numpy从1d数组创建对角矩阵?

我正在使用
Python和numpy做线性代数.

我在矩阵上执行numpy SVD以获得矩阵U,i和V.然而,i矩阵表示为具有1行的1×4矩阵.即:[12.22151125 4.92815942 2.06380839 0.29766152].

我如何能够将i矩阵表示为对角矩阵,如下所示:
[[12.22151125,0,0,0],[0,4.92815942,0,0],[0,0,2.06380839,0],[0,0,0,0.29766152]]

我正在使用的代码:

A = np.matrix([[3, 4, 3, 1],[1,3,2,6],[2,4,1,5],[3,3,5,2]])

U, i, V = np.linalg.svd(A,full_matrices=True)

所以我希望我成为一个完整的对角矩阵.我是怎么做到的?

最佳答案 使用numpy的
diag功能:

numpy.diag(i)

从文档:

Extract a diagonal or construct a diagonal array.

点赞