Python - 如何从一个数组值和另一个数组的所有值相乘得到新的积和数组?

3
例如,我有这两个数组:
a = [1,3,5,7,9] b = [2,4,6]
我想要将数组a中的每个值分别乘以数组b中的每个值,并将它们的和相加。最终得到一个新的数组,如下所示:
[12, 36, 60, 84, 108]
我已经完成了以下步骤:
a = [1,3,5,7,9]
b = [2,4,6]
ab = []                     
for i in range(len(a)):
    for j in range(len(b)):
        ab.append(a[i]*b[j])
print(ab)

但不确定如何添加这些产品。
谢谢您的建议!

[sum(i*j for j in b) for i in a] - Transhuman
你是不是想用b的总和去乘以a中的每个元素? - Blownhither Ma
4个回答

2
为什么不选择这个呢:
[i*sum(b) for i in a]

演示:

a = [1,3,5,7,9]
b = [2,4,6]
print([i*sum(b) for i in a])

输出:

[12, 36, 60, 84, 108]

2
啊哈,a * x + a * y + a * z = a * (x + y + z) - slider
1
@slider 是的,:-) - U13-Forward

1
[sum(i*j for j in b) for i in a]
#[12, 36, 60, 84, 108]

1
你是不是想将a中的每个元素与b的总和相乘?这段代码可以帮到你。
a = [1,3,5,7,9]
b = [2,4,6]
b_sum = sum(b)
ab = [x * b_sum for x in a]

0

必须使用numpy解决方案

import numpy as np
a = np.array([1,3,5,7,9])
b = np.array([2,4,6])
np.sum(a[:,None]*b[None,:], axis=1)

输出

array([ 12,  36,  60,  84, 108])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接