我正在尝试使用scipy.stats.linregress()
进行线性回归。但是,当我运行我的脚本时,我收到错误消息
AttributeError: 'module' object has no attribute 'stats'*
我正在使用Anaconda python 2.7发行版,在其文档中说要安装模块。 Anaconda documentation
在python交互式解释器中,我可以导入scipy模块,但无法找到统计信息。当我查看__version__
它0.14
时,应该有统计模块..
我真的无法猜到为什么统计数据不可用..
答案 0 :(得分:5)
此错误:
AttributeError: 'module' object has no attribute 'stats'
意味着它的意思。 stats
模块中没有名为scipy
的属性。
不是因为磁盘上不存在这样的东西,而是因为没有导入过这样的东西 - 因为你甚至都没想过导入它。
scipy
是一个包。正如the Python tutorial所解释的那样,导入包不会导入其所有子模块。
一些软件包有__init.py__
自动导入部分或全部软件包。*但这对scipy
来说不是一个好主意,因为它们有很多,所以导入所有这些都需要一些时间,通常在给定的项目中只需要一两个。
所以,你只需要这样做:
import scipy.stats
*还有一些案例如os
伪造成包但不是,所以你可以使用os.path
而无需导入它,或像pyobjc
那样创建模块的特殊占位符对象,在首次访问时自动导入实际模块。
答案 1 :(得分:1)
导入scipy
而不是scipy.stats
时出现同样的错误。你试过吗
import scipy.stats
scipy.stats.linregress()