Python-如何从一个数组值乘以另一个数组的所有值来创建乘积和的新数组

时间:2018-10-15 02:55:50

标签: python arrays python-3.x list

例如,我有以下两个数组:

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)

但是不确定如何添加产品。

谢谢您的建议!

4 个答案:

答案 0 :(得分: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]

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您的意思是将a中的每个元素与sum(b)相乘吗?这段代码将为您完成。

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

答案 3 :(得分: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])