Python Numpy:向现有矩阵行添加向量
我正在使用Python/Numpy,我想通过添加相应的元素向矩阵的一行添加行向量,并用新行更新矩阵。例如,我有下面的numpy数组Python Numpy:向现有矩阵行添加向量,python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我正在使用Python/Numpy,我想通过添加相应的元素向矩阵的一行添加行向量,并用新行更新矩阵。例如,我有下面的numpy数组A=array([[1,2,3],[4,5,6],[7,8,9])和向量v=[1,2,3]。因此,我想执行以下操作: A1=v+r1=array([[2,4,6],[4,5,6], [7,8,9]) A2=v+r2=array([[1,2,3],[5,7,9], [7,8,9]) A3=v+r3=array([[1,2,3],[4,5,6], [8,10,12])
A=array([[1,2,3],[4,5,6],[7,8,9])
和向量v=[1,2,3]
。因此,我想执行以下操作:
A1=v+r1=array([[2,4,6],[4,5,6], [7,8,9])
A2=v+r2=array([[1,2,3],[5,7,9], [7,8,9])
A3=v+r3=array([[1,2,3],[4,5,6], [8,10,12])
我们非常感谢为实现这一目标提供的任何帮助
In [74]: A = np.arange(1,10).reshape(3,3); v = np.arange(1,4)
In [75]: A
Out[75]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
In [77]: v
Out[77]: array([1, 2, 3])
将A
展开为A(3,3,3):
对v
执行相同的操作:
In [79]: np.eye(3)
Out[79]:
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
In [80]: np.eye(3)[:,:,None]*v
Out[80]:
array([[[1., 2., 3.],
[0., 0., 0.],
[0., 0., 0.]],
[[0., 0., 0.],
[1., 2., 3.],
[0., 0., 0.]],
[[0., 0., 0.],
[0., 0., 0.],
[1., 2., 3.]]])
添加两个:
In [81]: _78+_80
Out[81]:
array([[[ 2., 4., 6.],
[ 4., 5., 6.],
[ 7., 8., 9.]],
[[ 1., 2., 3.],
[ 5., 7., 9.],
[ 7., 8., 9.]],
[[ 1., 2., 3.],
[ 4., 5., 6.],
[ 8., 10., 12.]]])
或者一步到位:
A+np.eye(3)[:,:,None]*v
好的,你试过什么,做过什么研究吗?到底是什么问题?
A+np.eye(3)[:,:,None]*v