无法在整数列表上使用均值功能 - 属性错误:"列表"对象没有属性"mean"



我正在学习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

最新更新