我正在学习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
如果有人能给我一些洞察我做错了什么,并尽可能简单地解释这个理论,那将是非常有帮助的。我要提前谢谢你。
3条答案
按热度按时间1yjd4xko1#
在第一个示例中,您将
dtype
指定为对象。这将为您留下一个由两个Python列表组成的数组。您不能在python列表上调用.mean()
。yeotifhr2#
family_name_age[1]
是一个列表,但family_bmi_data[0]
是一个NumPy数组。与NumPy数组不同,List没有mean
方法。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提供的完整代码块如下所示:
感谢@leerner和@jprebys