簡體   English   中英

Python中的ModuleWrapper到底是什么?

[英]What exactly is a ModuleWrapper in Python?

這可能是有史以來最基本的問題,但是最近我試圖更好地理解鍵入以下內容:

model = statsmodels.regression.linear_model.OLS(y, X).fit()

確實。 嘗試理解相對於前進的基本原理,如果我鍵入可以擬合線性最小二乘回歸模型的數據,那么我每次都將輸入它。 因此,現在我想更全面地了解它。 所以我開始使用? 更多,我發現:

statsmodels是庫

回歸是ModuleWrapper

linear_model是模塊

OLS是類型/類

fit是與OLS類型的實例關聯的方法

所以我的問題是,什么是ModuleWrapper? 我不敢相信我已經無法通過搜索找到答案了,對此感到抱歉,但是它僅僅是像幾個不同模塊的捆綁包那樣簡單嗎?

謝謝。

regression是具有多個模塊的statsmodels的文件夾或子目錄

定義OLS類的模塊的完整文件路徑為

...\\statsmodels\\regression\\linear_model.py

但是,python不需要路徑對應於實際目錄,文件或模塊。

使用api導入時,請import statsmodels.api ,然后用於訪問的python路徑與磁盤上的文件不對應。

例如statmodels\\api.py包含

from .genmod.api import families, cov_struct

...\\statsmodels\\genmod\\api.py包含來自實際模塊或子目錄的導入

from . import families
from . import cov_struct

例如,我們可以使用api快捷方式訪問Poisson系列,而定義該類的實際模塊則具有不同且更長的路徑。

>>> import statsmodels.api as sm

>>> sm.families.Poisson
<class 'statsmodels.genmod.families.family.Poisson'>
>>> sm.families.Poisson.__module__
'statsmodels.genmod.families.family'

直接從包含Poisson系列代碼的模塊中導入

>>> import statsmodels.genmod.families.family
>>> statsmodels.genmod.families.family.Poisson
<class 'statsmodels.genmod.families.family.Poisson'>

因此,有時路徑中的名稱指的是實際的文件路徑,而在其他情況下,它是通過中間模塊間接導入的,並不對應於實際的目錄結構。

有關statsmodels為什么使用雙重導入結構的簡要說明, 請參見http://www.statsmodels.org/devel/importpaths.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM