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

NumPy嵌套数组sum方法axis参数理解及期望结果实现求助

解决NumPy嵌套数组求和的axis参数理解问题

先明确你的数组形状:

import numpy as np
vals = np.array([[[38., 27.], [20., 12.]], [[10., 27.], [10., 30.]], [[13., 16.], [5., 5.]]])
print(vals.shape)  # 输出 (3, 2, 2)

NumPy的axis是从0开始计数的维度:

  • axis=0:最外层的3个二维数组
  • axis=1:每个二维数组里的2个一维数组
  • axis=2:每个一维数组里的2个数值

你用vals.sum(axis=1)时,是沿着axis=1(中间层)求和,也就是把每个二维数组里的两个一维数组对应位置相加,所以第一个二维数组[[38.,27.],[20.,12.]]求和后得到[38+20, 27+12] = [58.,39.],这和你当前得到的结果一致。

而你预期的[65.,32.]是把每个一维数组内部的数值相加,这需要沿着axis=2(最内层)求和:

result = vals.sum(axis=2)
print(result)

输出结果:

array([[65., 32.],
       [37., 40.],
       [29., 10.]])

你写的第三个子数组结果[40.,29.]应该是手误,正确计算是13+16=29、5+5=10。

如果你的预期结果确实是[40.,29.],可以补充说明具体的计算逻辑,再调整解法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:57:25