python中如何求列表中的和_python中如何计算多个列表的产品之和?

试图模仿Excel的SUMPRODUCT函数:SUMPRODUCT(v1, v2, ..., vN) =

v1[0]*v2[0]*...*vN[0] + v1[1]*v2[1]*...*vN[1] + ... + v1[n]*v2[n]*...*vN[n]

其中n是每个向量中的元素数。

这类似于点积,但适用于多个向量。 我阅读了常规点积的详细讨论,但我不知道如何将它干净地扩展到多个向量。 作为参考,我正在复制那里提出的优化代码,我将其移植到Python 3. BTW,对于dot产品,最后一种方法仍然在P3K中获胜。def d0(v1,v2):

"""

d0 is Nominal approach:

multiply/add in a loop

"""

out = 0

for k in range(len(v1)):

out += v1[k] * v2[k]

return out

def d1(v1,v2):

"""

d1 uses a map

"""

return sum(map(mul,v1,v2))

def d3(v1,v2):

"""

d3 uses a starmap (itertools) to apply the mul operator on an zipped (v1,v2)

"""

return sum(starmap(mul,zip(v1,v2)))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值