np.mean 'str' 对象没有 'mean' 属性错误
我有一段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
,看看它现在的值是什么,然后找出你在哪里做了错误的赋值。只要给字符串换个不同的变量名,你就可以解决这个问题了。