我正在学习Python,并一直在使用NumPy尝试一些简单的方程。在尝试使用mean((函数计算数字列表的平均值时,我遇到了一个错误。
属性错误:"list"对象没有属性"mean"p.S为了避免任何疑问,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笔记本中运行此程序时,我会收到以下错误消息。
AttributeError
回溯(最近一次调用(c:\Users\my_pc\a_folder\01-numpy-practice.ipynb
在<细胞系:5>((
2族_年龄=[39,36,2,8]
3 family_name_age=np.array([family_name,family_age],dtype=object(
---->4 avg_family_age=family_name_age[1].mean((
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
如果有人能让我深入了解我做错了什么,并尽可能简单地解释这个理论,那将是非常有帮助的。超级感谢你提前。
在第一个示例中,您将dtype
指定为对象。这将给您留下一个由两个python列表组成的数组。不能在python列表上调用.mean()
。
family_name_age[1]
是一个列表,但family_bmi_data[0]
是一个NumPy数组。与NumPy数组不同,列表没有mean
方法。
@jprebys提供了我遇到错误的明确原因:"AttributeError:"list"对象没有属性"mean">
在第一个示例中,您将dtype指定为对象。这将给您留下一个由两个python列表组成的数组。你不能打电话python列表上的.mean((-@jprebyshttps://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))
感谢@learner和@jprebys