将numpy数组的每个元素相乘并将其相加

时间:2014-08-18 13:38:52

标签: python arrays numpy

我有两个numpy数组,X和y。 X的大小为m,y的大小为n。我需要将y的每个元素乘以X的每个元素,然后总结。

[sum(X[0]*y) sum(X[1]*y) sum(X[n]*y)]

这样的东西

这就是我的意思

np.sum(X[:, np.newaxis] * y, axis=1)

然而,通常X和y非常大而且这样做

X[:, np.newaxis] * y

创建了一个巨大的临时数组,它会炸毁一些东西。有没有更好的方法来实现这个?

1 个答案:

答案 0 :(得分:4)

如果您将y的每个元素乘以X的每个元素,只需先将X的所有元素相乘,然后使用乘以数组{{1}通过这个数字和总和:

y

编辑:您可以通过将数组num = X.prod() (num * y).sum() 乘以X的元素之和来获得您指定的数组:

y