numpy - 如何在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 m
Q_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)。
解决方案
推荐阅读
- python - 如何让 QHBoxLayout 有固定的比例?
- java - flink 中的远程调试
- c++ - 需要在 C++ 中一起使用两个类头
- android - 为什么firebase authUI现在不能用google账号登录,但是以前可以登录
- json - 开发中的 Python 对象响应与生产响应不同
- three.js - THREE.JS:改变PNG纹理背后的材质颜色?将 2 种材质分配给从 GLTF 模型导入的网格?
- xml - 否则需要 xsl:for-each?
- php - 无法使用 PHP 和 gmail smtp 从本地 Web 服务器发送邮件
- auto-keras - 如何导出/保存/加载实际的 AutoKeras “超级”模型,而不是底层的 tensorflow 模型
- node.js - 收听时如何捕捉 EADDRINUSE 错误