沿numpy中的一个轴对角化2d矩阵

沿numpy中的一个轴对角化2d矩阵,numpy,matrix,diagonal,Numpy,Matrix,Diagonal,给定MxN维的矩阵X。我想为X的每一行创建一个对角矩阵。结果应该是MxNxN。如何有效地做到这一点?谢谢大家! out = np.zeros((m, n, n)) out[:, np.arange(n), np.arange(n)] = X

给定MxN维的矩阵X。我想为X的每一行创建一个对角矩阵。结果应该是MxNxN。如何有效地做到这一点?谢谢大家!

out = np.zeros((m, n, n))
out[:, np.arange(n), np.arange(n)] = X