首先,我们可以初始化一个用零填充所需形状的矩阵,然后将a复制到前13行。在任何情况下,我们都必须形成一个新的矩阵,因为我们无法摆弄现有的矩阵/向量,因为我们需要为额外的空行分配更多的内存。
你可以在下面找到例子演示:# inputs
In [30]: a
Out[30]:
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]])
In [31]: b
Out[31]: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])# initialize a zero array for the desired shape
In [32]: appended = np.zeros((20, b.shape[0]))
# copy `a` to first few rows
In [33]: appended[:a.shape[0], :] = a
# expected output
In [34]: appended
Out[34]:
array([[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],
[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],
[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],
[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],
[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.],
[11., 12., 13., 14., 15., 16., 17., 18., 19., 20.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])