NUMPY 滑动点阵操作



我正在使用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

相关内容

  • 没有找到相关文章

最新更新