Python中如何用循环结合sum函数实现列表与numpy数组的运算
实现方法
首先修正你初始代码的语法错误:
- 原
np.array([1,2],[2,3])缺少外层方括号,正确写法为np.array([[1,2],[2,3]]) - 原total计算公式末尾缺少1个右括号,完整计算结果为21。
方法1:显式循环配合sum实现
如果需要自定义每一行的计算逻辑,可使用该写法,扩展性更强:
import numpy as np f = [2, 3] b = np.array([[1,2],[2,3]]) total = 0 for f_val, b_row in zip(f, b): total += sum(f_val * b_row)
方法2:向量化简写(符合你要的sum(F*(b+b))类形式)
无需手动写循环,利用numpy的轴求和和广播特性实现,代码更简洁:
import numpy as np f = [2, 3] b = np.array([[1,2],[2,3]]) # b.sum(axis=1) 等价于对b的每一行分别求和 total = sum(np.array(f) * b.sum(axis=1))
如果你的实际公式更复杂,只需要对应修改f_val和b_row的运算规则即可适配。
内容的提问来源于stack exchange,提问作者Zain
相关产品推荐
相关产品推荐

