导入scipy后,在脚本中使用scipy.stats.时出现错误。
AttributeError: 'module' object has no attribute 'stats'
在脚本编辑器中,我可以在输入scipy后单击stats,在python控制台中,我无法从下拉菜单中选择python,stats不在那里,我使用的是panda 2. 7和SciPy 0. 13. 0,为什么会这样?有任何已知问题吗?
c0vxltue1#
扩展我的评论(列出答案)。Scipy和其他很多大的包一样,并不会自动导入所有的模块,如果我们想使用Scipy的子包,那么我们需要直接导入。然而,一些scipy子包会加载其他的scipy子包,例如导入scipy.stats也会导入大量其他的包,但是我从来不依赖于此来使子包在名称空间中可用。在许多使用scipy的包中,首选模式是导入子包,使其按名称可用,例如:
>>> from scipy import stats, optimize, interpolate >>> import scipy >>> scipy.stats Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'stats' >>> scipy.optimize Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'optimize' >>> import scipy.stats >>> scipy.optimize <module 'scipy.optimize' from 'C:\Python26\lib\site-packages\scipy\optimize\__init__.pyc'>
vsikbqxv2#
这是意料之中的。当你导入scipy的时候,大部分的子包是不会被导入的。它们有很多,有很多繁重的扩展模块需要花时间来加载。你应该总是显式地导入你想要使用的子包。https://github.com/scipy/scipy/issues/13618
bgtovc5b3#
如果像这样单独导入scipy:
import scipy
则用途:
scipy.stats
您将获得:
AttributeError: module 'scipy' has no attribute 'stats'
您必须像这样导入:
import scipy.stats
或
import scipy import stats
3条答案
按热度按时间c0vxltue1#
扩展我的评论(列出答案)。
Scipy和其他很多大的包一样,并不会自动导入所有的模块,如果我们想使用Scipy的子包,那么我们需要直接导入。
然而,一些scipy子包会加载其他的scipy子包,例如导入scipy.stats也会导入大量其他的包,但是我从来不依赖于此来使子包在名称空间中可用。
在许多使用scipy的包中,首选模式是导入子包,使其按名称可用,例如:
vsikbqxv2#
这是意料之中的。当你导入scipy的时候,大部分的子包是不会被导入的。它们有很多,有很多繁重的扩展模块需要花时间来加载。你应该总是显式地导入你想要使用的子包。
https://github.com/scipy/scipy/issues/13618
bgtovc5b3#
如果像这样单独导入scipy:
则用途:
您将获得:
您必须像这样导入:
或