Python 将statsmodels.api作为sm导入和将statsmodels作为sm导入之间有什么区别?

Python 将statsmodels.api作为sm导入和将statsmodels作为sm导入之间有什么区别?,python,Python,当我将statsmodels.api作为sm导入并运行sm.nonparametric.smoothers\u lowess.lowess 发生错误: 模块“statsmodels.nonparametric.api”没有属性“smoothers\u lowess” 但是导入statsmodels作为sm没有这个错误 将statsmodels.api导入为sm sm.非参数.平滑器_lowess.lowess() 将statsmodels导入为sm sm.非参数.平滑器_lowess.lowe

当我将statsmodels.api作为sm导入并运行
sm.nonparametric.smoothers\u lowess.lowess
发生错误: 模块“statsmodels.nonparametric.api”没有属性“smoothers\u lowess” 但是导入statsmodels作为sm没有这个错误

将statsmodels.api导入为sm
sm.非参数.平滑器_lowess.lowess()
将statsmodels导入为sm
sm.非参数.平滑器_lowess.lowess()
AttributeError:模块“statsmodels.nonparametric.api”没有属性“smoothers\u lowess”

  • import statsmodels as sm
    使您的
    sm
    引用--
  • import statsmodels.api as sm
    使您的
    sm
    引用--也就是说,
    statsmodels/api.py
因为这些是不同的文件,所以它们通常具有不同的内容。请注意,通过
api
模块访问的所有内容都是公共功能,在各个版本中都得到支持和稳定;如果您使用非公开功能,您的代码可能会在将来的版本中中断


api之间的基本原理差异记录在

statsmodels中。api
statsmodels
是两个不同的模块,来自两个不同的文件;它们可能有不同的内容。导入sm应该使用的statsmodels:sm.api.nonparametric.smoothers_lowess.lowess()THX!和statsmodels.api,以比statsmodels更快的速度导入模块?感谢您的耐心等待!这对我帮助很大!来自模块的导入(不带前导下划线)也是公共的。主要区别在于在
api
中一次导入大多数statsmodels,而不是只导入一些特定功能和支持代码。例如,statsmodels.regression.linear_model import OLS的
是公开的,如果您只需要OLS,特别是在图书馆使用中,建议您使用它。@Josef,就这个答案被标记为社区wiki而言,我不主张它的任何个人所有权,也不从它的投票中获得任何代表;请鼓励编辑以确保准确性/完整性。