外部产品所有维度的总和

时间:2019-08-28 05:19:48

标签: numpy

如果我要实现此功能: enter image description here

我知道我可以编写这样的循环:

result = 0
for i in range(len(x)):
    for j in range(len(y)):
        result += x[i] * y[j]

但是,如果我想使用numpy来完成该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以为此使用广播

np.sum(x * y[:, None])

答案 1 :(得分:0)

使用np.einsum-

np.einsum('i,j->',x,y)

或者简单地求和减去然后得到标量的乘积-

x.sum()*y.sum()