Python 如何将向量添加到矩阵中
我有一个形状矩阵(13,10),我想加上零向量,直到形状变成20行10列Python 如何将向量添加到矩阵中,python,numpy,Python,Numpy,我有一个形状矩阵(13,10),我想加上零向量,直到形状变成20行10列 a=([[1,2,3,.......,10], [1,2,3,.......,10], . . [13,14,.......,10]]). # this is the 13th row b=([0,0,0,....0]) # has length 10 我想在开头用“b”
a=([[1,2,3,.......,10],
[1,2,3,.......,10],
.
.
[13,14,.......,10]]). # this is the 13th row
b=([0,0,0,....0]) # has length 10
我想在开头用“b”填充“a”,直到“a”有20行
z = np.zeros((13, 10))
x = np.zeros((1, 10))
y = np.vstack((z, x))
y.shape
(14, 10)
检查尝试
np.行堆栈
a=np.one((13,10))
b=np.零(10)
a_pad=np.行_堆栈((a,b))
便笺簿
数组([[1,1,1,1,1,1,1,1,1,1,1,1,1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
这样做直到你得到你想要的长度。可能是一个while
循环或更简单的东西,只要叠加b=np.zero((7,10))
就可以得到你想要的20个首先我们可以初始化一个填充了所需形状的矩阵,然后将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])
您可以签出。Op希望输出有20行(用0填充其余的行),而不是14行
# 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.]])