我使用numpy进行一些矩阵运算,我不确定如何在以下两个矩阵上实现特定的运算:
(a) (b) (c)
[1 [1 -1 0 [2
1 (some operation) 1 -1 0 = -3
1 0 -1 0 0
1] 0 0 0] 0]
所以基本上我想要一个等效形状的矩阵作为(a),但每个条目都是(a)中的条目,"点缀"与(b)中的列对应。
我目前正在使用以下内容,但它似乎相当hacky只会让我加入标量,我觉得必须有更好的方法:
np.dot(a , np.atleast_2d(b[0].T[0]))[0].sum() = 2
etc...
有什么建议吗?
答案 0 :(得分:0)
如果您按照以下方式初始化数据:
b=np.zeros((4,3))
a=np.ones((4,1))
b[0:2,0]=1
b[0:3,1]=-1
您可以使用dot
:
np.dot(a.T,b)
给
array([[ 2., -3., 0.]])
几乎你想要的。您的问题是b
中没有与a
中第4个元素对应的第4列。您可以在结果中附加0
或在b
附加一列零来解决此问题。或者:
c=np.zeros_like(a)
c[0:3]=np.dot(a.T,b).T