像在MATLAB中一样在Python中连接矩阵/向量?

spa*_*ger 5 python matlab numpy concatenation linear-algebra

让A,x,y和z是一些载体或适当大小的矩阵.然后在MATLAB中,可以B很容易地构建一个"超级矩阵" :

A = [1 2;3 4];
x = [4;5];
y = [1 2];
z = 4;
B = [A x;y z];
Run Code Online (Sandbox Code Playgroud)

输出是:

>> B

B =

     1     2     4
     3     4     5
     1     2     4
Run Code Online (Sandbox Code Playgroud)

在NumPy中实现相同效果的最佳方法是什么?

War*_*ser 5

您可以使用numpy.block:

In [27]: a
Out[27]: 
array([[1, 2],
       [3, 4]])

In [28]: x
Out[28]: 
array([[4],
       [5]])

In [29]: y
Out[29]: array([1, 2])

In [30]: z
Out[30]: 4

In [31]: np.block([[a, x], [y, z]])
Out[31]: 
array([[1, 2, 4],
       [3, 4, 5],
       [1, 2, 4]])
Run Code Online (Sandbox Code Playgroud)