python 生成对角矩阵,如何使用numpy从一维数组创建对角矩阵?

I am using Python with numpy to do linear algebra.

I performed numpy SVD on a matrix to get the matrices U,i, and V. However the i matrix is expressed as a 1x4 matrix with 1 row. i.e.: [ 12.22151125 4.92815942 2.06380839 0.29766152].

How can I get numpy to express the i matrix as a diagonal matrix like so:

[[12.22151125, 0, 0, 0],[0,4.92815942, 0, 0],[0,0,2.06380839,0 ],[0,0,0,0.29766152]]

Code I am using:

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)

So I want i to be a full diagonal matrix. How an I do this?

解决方案

Use numpy's diag function:

numpy.diag(i)

From the documentation:

Extract a diagonal or construct a diagonal array.

你可能感兴趣的:(python,生成对角矩阵)