Python—如何从一个数组值乘以另一个数组的所有值来创建乘积和的新数组
例如,我有两个数组: a=[1,3,5,7,9] b=[2,4,6] 我想把数组a的每个值乘以数组b的每个值的乘积加起来。最终产生一个新的数组,看起来像 [12,36,60,84,108] 我知道:Python—如何从一个数组值乘以另一个数组的所有值来创建乘积和的新数组,python,arrays,python-3.x,list,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) 但
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)
但不确定如何添加产品
谢谢你的建议 您的意思是将a中的每个元素与总和(b)相乘吗?此代码将为您完成此操作
[sum(i*j for j in b) for i in a]
#[12, 36, 60, 84, 108]
a = [1,3,5,7,9]
b = [2,4,6]
b_sum = sum(b)
ab = [x * b_sum for x in a]
那么,为什么不这样做呢:
[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]
强制性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])
[求和(i*j表示b中的j)表示a中的i]你的意思是用
a
中的每个元素乘以sum(b)
?啊哈,a*x+a*y+a*z=a*(x+y+z)
@是的,:-)