我正在使用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) 中的列相对应。
我目前正在使用以下方法,但它似乎相当笨拙,只能让我使用标量,我觉得一定有更好的方法:
np.dot(a , np.atleast_2d(b[0].T[0]))[0].sum() = 2
etc...
有什么建议吗?
如果像这样初始化数据:
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