Python:如何将4个小矩阵组合成一个大矩阵

0 resize numpy reshape

Mat_1 is 2x2 matrix   =
[[1,2], 
[3,4]]   

Mat_2 is 2x2 matrix   =
[[a,b],
[c,d]] 

Mat_3 is 2x2 matrix = 
[[5,6], 
[7,8]]    

Mat_4 is 2x2 matrix  = 
[[e,f], 
[g,h]]   
Run Code Online (Sandbox Code Playgroud)

如何将 4 个矩阵组合成一个新矩阵,如下所示,

Mat is 4x4 matrix   = 
[ [1,2,a,b],   
  [3,4,c,d],   
  [5,6,e,f],   
  [7,8,g,h]]  
Run Code Online (Sandbox Code Playgroud)

可以通过 numpy.reshape 或 resize 解决吗?

spe*_*on2 5

这有效...

In [10]: np.vstack([np.hstack([Mat_1, Mat_2]), np.hstack([Mat_3, Mat_4])])
Out[10]:
array([['1', '2', 'a', 'b'],
       ['3', '4', 'c', 'd'],
       ['5', '6', 'e', 'f'],
       ['7', '8', 'g', 'h']],
      dtype='|S1')
Run Code Online (Sandbox Code Playgroud)

编辑:

看起来这个numpy.bmat函数就是为了这个目的而编写的:

In [11]: np.bmat([[Mat_1, Mat_2], [Mat_3, Mat_4]])
Out[11]:
matrix([['1', '2', 'a', 'b'],
        ['3', '4', 'c', 'd'],
        ['5', '6', 'e', 'f'],
        ['7', '8', 'g', 'h']],
       dtype='|S1')
Run Code Online (Sandbox Code Playgroud)