numpy滑动点阵操作

时间:2015-04-23 09:16:14

标签: python numpy matrix linear-algebra

我使用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...

有什么建议吗?

1 个答案:

答案 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