scipy 无法使用脚本统计

pw136qt2  于 2023-01-26  发布在  其他
关注(0)|答案(3)|浏览(131)

导入scipy后,在脚本中使用scipy.stats.时出现错误。

AttributeError: 'module' object has no attribute 'stats'

在脚本编辑器中,我可以在输入scipy后单击stats,在python控制台中,我无法从下拉菜单中选择python,stats不在那里,我使用的是panda 2. 7和SciPy 0. 13. 0,为什么会这样?有任何已知问题吗?

c0vxltue

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'>
vsikbqxv

vsikbqxv2#

这是意料之中的。当你导入scipy的时候,大部分的子包是不会被导入的。它们有很多,有很多繁重的扩展模块需要花时间来加载。你应该总是显式地导入你想要使用的子包。
https://github.com/scipy/scipy/issues/13618

bgtovc5b

bgtovc5b3#

如果像这样单独导入scipy:

import scipy

则用途:

scipy.stats

您将获得:

AttributeError: module 'scipy' has no attribute 'stats'

您必须像这样导入:

import scipy.stats

import scipy
import stats

相关问题