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

使用NumPy计算列表均值时触发AttributeError问题求助

错误原因分析:AttributeError: 'list' object has no attribute 'mean'

问题核心

  • 报错代码中,family_name(3个元素)与family_age(4个元素)长度不匹配,且创建numpy数组时指定了dtype=object。这种情况下numpy无法将两组数据转换成统一结构的数值型二维数组,只能把原始的Python列表作为独立对象存入数组。
  • 执行family_name_age[1]取出的是原生Python列表,而Python列表没有mean()方法,因此触发报错。

报错代码:

import numpy as np
family_name = ['Homer','Marge','Maggie']
family_age = [39,36,2,8]
family_name_age = np.array([family_name, family_age], dtype=object)
avg_family_age = family_name_age[1].mean()
print('Average age: {:.2f}'.format(avg_family_age))

正常代码能运行的原因

  • 正常代码里的family_height_cm和family_weight_kg长度均为3,numpy可以直接将它们转换为形状为(2,3)的二维数值型ndarray。
  • 此时family_bmi_data[0]取出的是numpy一维数组,自带mean()方法,因此能正常计算均值。

正常代码:

family_height_cm = [183,172,82]
family_weight_kg = [109,60,11]
family_bmi_data = np.array([family_height_cm,family_weight_kg])
avg_fam_height = family_bmi_data[0].mean()
print('Average height: {:.2f}'.format(avg_fam_height))

通俗理论解释

numpy数组本质是规整的结构化容器,要求内部每一行的元素数量必须一致,这样才能对所有元素进行统一的数值运算。如果输入的各行长度不一样,numpy就无法构建这种规整结构,只能把每个原始列表当作“独立个体”存入数组,此时取出的元素还是原来的Python列表,不具备numpy数组的方法(比如mean())。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:55:21