np.mean 'str' 对象没有 'mean' 属性错误

0 投票
1 回答
3227 浏览
提问于 2025-04-29 03:45

我有一段Python代码,昨天还好好的,今天却出现了一些奇怪的问题,我一直找不到原因。我想用np.mean来计算一个列表的平均值,但出现了一个错误,提示:AttributeError: 'str' object has no attribute 'mean'

不过,当我打印出出问题的平均值计算时:

volumetric_power = [x/y for x,y in zip(mcnp_calculated_power,mcnp_vol)]
print volumetric_power
normalized_power = [x/np.mean(volumetric_power) for x in volumetric_power]

我得到的结果是一个预期中的浮点数列表(我就是这么计算出来的):

[3.3999658877707657, 3.4055375518790156, 3.3929180596302109, 3.4015594541910334, 3.415077891066217, ... ]

为了绕过这个问题,我最后选择手动计算平均值,使用了sum(volumetric_power)/len(volumetric_power),这样我就能继续往下走了。但是在文件的后面,我又遇到了一个关于np.loadtxt的错误(这里的相关错误):

get_radial_data(filename,zirc_mesh)
File "./Bicnp.py", line 313, in get_radial_data
data = np.loadtxt(cwd+'/grope.o', usecols=(1,2,3), skiprows=12)
AttributeError: 'str' object has no attribute 'loadtxt'

经过这些,我觉得这个错误可能是某种Python库的类型错误(用简单的说法就是我不知道该去哪里找问题)。昨天一切都运行得很好,今天我唯一做的就是根据http://wiki.centos.org/AdditionalResources/Repositories/SCL添加了python27和python33。

谢谢大家的帮助。

更新:我忘了提,这个是在Python 2.6.6上运行的。

暂无标签

1 个回答

3

在你的代码某个地方,你把一个字符串对象赋值给了np这个变量。这就覆盖了你之前用这个名字导入的numpy模块,这也解释了你看到的那些奇怪的错误信息(可能出现在代码的不同部分)。

如果你在某个地方一直遇到这个错误,试着在那个地方打印一下np,看看它现在的值是什么,然后找出你在哪里做了错误的赋值。只要给字符串换个不同的变量名,你就可以解决这个问题了。

撰写回答