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

为何np.mean仅输出单个值,无法返回每行每列对应均值?NumPy问题

问题根因

np.mean()的axis参数仅对对应维度存在的数组生效,你的代码中存在一个典型的NumPy使用误区:

  • 初始读入的numpy_list和numpy_list2转换为NumPy数组后,都是长度为9的一维数组,两者相加得到的added仍然是shape为(9,)的一维数组
  • 你仅在打印added时临时调用了.reshape(3,3),但NumPy的reshape操作默认不会原地修改数组结构,也没有把变形后的结果重新赋值给变量,后续计算均值时传入的还是一维的added
  • 对一维数组指定行列维度参数时,NumPy无法识别按行列计算的逻辑,会直接返回整个数组的全局均值,也就是你看到的单个数值结果。
修正方案

调整加法分支的逻辑,在运算后先把相加结果显式变形为3*3二维矩阵,再执行后续所有操作,不需要重复调用reshape。修正后的代码片段如下:

if selection == 1:
    # 相加后直接转成3*3二维数组并赋值
    added = (numpy_list + numpy_list2).reshape(3, 3)
    print(added)
    print("\n")
    # 转置操作针对二维数组直接生效,无需重复reshape
    print("This is the transpose: \n", np.transpose(added))
    print("\n")
    # 此时数组为二维结构,axis参数可以正确按维度计算均值
    added_col_ave = np.mean(added, axis=0)
    print("The average of the columns is:", added_col_ave)
    added_row_ave = np.mean(added, axis=1)
    print("The average of the rows is:", added_row_ave)

补充提示:如果需要reshape操作原地生效,可以用added.shape = (3,3)的写法直接修改数组的shape属性,不需要重新赋值,但更推荐显式返回新数组赋值的写法,逻辑更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:03:29