首页 > 解决方案 > 如何在numpy中对角化> 2d数组?

问题描述

假设在 numpy 中有一个向量 v = [1, 2, 3]。一个人使用 np.diag 从这个向量创建一个对角矩阵,得到以下结果。

[[1, 0, 0],
[0, 2, 0],
[0, 0, 3]]

如果 v 的元素本身是 nxm 个向量怎么办?如何方便快捷地对该阵列进行对角化?来吧,重点是我们将使用 nxm 大小的零矩阵代替 0。

这就是我要的:

Q = [Q1, Q2, Q3, Q4, Q5]

矩阵在哪里,Q_i即。因此, 的形状是。现在我想要一个对角矩阵:n x mQ_i.shape = (n, m)Q(5, n, m)

Q_diag =
[[Q1 0 0 0 0]
[0 Q2 0 0 0]
[0 0 Q3 0 0]
[0 0 0 Q4 0]
[0 0 0 0 Q5]]

0's 实际上本身就是n x m矩阵,即具有 形状(n, m)。所以 Q_diag 的所有形状都是 Q_diag.shape = (5, 5, n, m)。

标签: numpy

解决方案


推荐阅读