numpy 无法对整数列表使用Mean函数-AttributeError:‘List’对象没有属性‘Mean’

t8e9dugd  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(440)

我正在学习Python,并一直在使用NumPy尝试一些简单的公式。在尝试使用Mean()函数计算一组数字的平均值时,我遇到了一个错误。
AttributeError:“List”对象没有属性“Mean”
备注:为了避免任何疑问,Numpy已经通过pip安装,并且运行良好。此外,这两个列表对象故意使用不同的形状。
以下是我的脚本/代码:

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))

当我在*jupyter笔记本上运行它时,我得到以下错误消息。
属性错误
回溯(最近一次呼叫)c:\Users\my_pc\a_folder\01-numpy-practice.ipynb
在<cell line:5>()中
2家庭_年龄=[39,36,2,8]
3 FAMILY_NAME_AGE=np.ARRAY([FAMILY_NAME,FAMILY_AGE],dtype=对象)
->4 AVG_FAMILY_AGE=FAMILY_NAME_AGE[1].均值()
6打印(‘平均年龄:{:.2F}’。格式(Avg_Family_Age))
AttributeError:“List”对象没有属性“Mean”
但是,当我按如下方式尝试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))

它工作得很好,我得到的数字是平均身高:145.67
如果有人能给我一些洞察我做错了什么,并尽可能简单地解释这个理论,那将是非常有帮助的。我要提前谢谢你。

1yjd4xko

1yjd4xko1#

在第一个示例中,您将dtype指定为对象。这将为您留下一个由两个Python列表组成的数组。您不能在python列表上调用.mean()

yeotifhr

yeotifhr2#

family_name_age[1]是一个列表,但family_bmi_data[0]是一个NumPy数组。与NumPy数组不同,List没有mean方法。

omhiaaxx

omhiaaxx3#

@jprebys提供了我遇到错误的明确原因:“AttributeError:‘List’Object没有‘Means’属性”
在第一个示例中,您将dtype指定为对象。这将为您留下一个由两个Python列表组成的数组。您不能在python列表上调用.ean()-@jprebys https://stackoverflow.com/a/74116157/1753769
而@Learner提供了一个代码片段,使我能够实现我想要的结果。
首先将我的变量FAMILY_AGE设置为NumPy数组:family_age = np.array([39,36,2,8])。我能够根据需要使用均值方法/函数。
所以我的@learner提供的完整代码块如下所示:

family_name = ['Homer','Marge','Maggie']
family_age = np.array([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))

感谢@leerner和@jprebys

相关问题