假设我有两个数组: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])
我的问题是关于上面代码的矢量化实现。有没有什么方法可以不使用循环来实现上面的计算?先谢谢你了。
1l5u6lss1#
使用numpy broadcasting的可能解决方案:
numpy broadcasting
np.sum(x - y[:, None], axis=1)
输出:
array([6, 3, 0])
xiozqbni2#
下面是另一个例子,使用np.subtract.outer:
np.subtract.outer
out = np.subtract.outer(x, y).sum(axis=0)
2条答案
按热度按时间1l5u6lss1#
使用
numpy broadcasting
的可能解决方案:输出:
xiozqbni2#
下面是另一个例子,使用
np.subtract.outer
:输出: