numpy np阵列差分的矢量化实现

k75qkfdt  于 2023-03-18  发布在  其他
关注(0)|答案(2)|浏览(111)

假设我有两个数组:x = [1,2,3]和y = [0,1,2]。x和y数组总是具有相同的长度。我要做的是x - y_i for len(y)中的i。上述计算的普通实现如下所示:

diff = np.zeros((x.shape[0]))
for i in range(y.shape[0]):
  diff[i] = np.sum(x - y[i])

我的问题是关于上面代码的矢量化实现。有没有什么方法可以不使用循环来实现上面的计算?
先谢谢你了。

1l5u6lss

1l5u6lss1#

使用numpy broadcasting的可能解决方案:

np.sum(x - y[:, None], axis=1)

输出:

array([6, 3, 0])
xiozqbni

xiozqbni2#

下面是另一个例子,使用np.subtract.outer

out = np.subtract.outer(x, y).sum(axis=0)

输出:

array([6, 3, 0])

相关问题