You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向函数传入多NumPy数组并返回多输出?行向量求和优化

解决NumPy二维数组按行求和(避免循环)的方法

你遇到的问题是因为直接取x[0] + x[1]是对行进行元素级相加,而非对每行内部的元素求和。以下是几种无需循环的高效实现方式:

方法1:使用numpy.sum()指定轴参数

这是最简洁的方式,通过axis=1指定按行求和:

import numpy as np
inps = np.array([[1, 2], [3, 4], [5, 6]])
sum_func = lambda x: x.sum(axis=1)
print(sum_func(inps))
# >>> [ 3  7 11]

方法2:直接索引每行元素相加

如果你的数组固定是2列,也可以直接取每行的两个元素做元素级加法:

import numpy as np
inps = np.array([[1, 2], [3, 4], [5, 6]])
sum_func = lambda x: x[:, 0] + x[:, 1]
print(sum_func(inps))
# >>> [ 3  7 11]

方法3:使用numpy.einsum()

einsum可以灵活指定求和维度,'ij->i'表示对二维数组的第二个维度(列)求和,保留第一个维度(行):

import numpy as np
inps = np.array([[1, 2], [3, 4], [5, 6]])
sum_func = lambda x: np.einsum('ij->i', x)
print(sum_func(inps))
# >>> [ 3  7 11]

原代码问题解释

你原来的lambda x : x[0] + x[1]中,x[0]是数组的第一行[1,2],x[1]是第二行[3,4],两者相加是元素级别的对应相加,得到[1+3, 2+4] = [4,6](你描述的[3,3]可能是笔误),这和你期望的每行内部求和逻辑不符。

内容的提问来源于stack exchange,提问作者alpastor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 08:10:29