我在NumPy中有三个相同大小的方形矩阵 . 我想将它们组合成块对角矩阵 .
例:
a1 = np.array([[1,1,1],[1,1,1],[1,1,1]])
a2 = np.array([[2,2,2],[2,2,2],[2,2,2]])
a3 = np.array([[3,3,3],[3,3,3],[3,3,3]])
r = np.array([[1,1,1,0,0,0,0,0,0],[1,1,1,0,0,0,0,0,0],[1,1,1,0,0,0,0,0,0],[0,0,0,2,2,2,0,0,0],[0,0,0,2,2,2,0,0,0],[0,0,0,2,2,2,0,0,0],[0,0,0,0,0,0,3,3,3],[0,0,0,0,0,0,3,3,3],[0,0,0,0,0,0,3,3,3]])
做这个的最好方式是什么?
3 回答
scipy.linalg有一个block_diag函数来自动执行此操作
如果你想要这个特定的数组
r
,也许最简单的方法是:如果
a1
,a2
,a3
可以是任意的二维数组,那么最简单的方法可能是:另一种较慢的方法是:
由于这些答案,
numpy
添加了block
函数