2013-01-16 50 views
3

如果我使用from sklearn import *from skleanr import datasets,那麼我可以按照以下方式使用數據集:iris = datasets.load_iris()如何在python中使用「導入」?

但是,import sklearnimport sklearn as sk不能像我所期望的那樣工作。例如,我不能使用sklearn.datasets.import_iris()sk.datasets.import_iris()。我誤解了導入語法嗎?情況就是這樣,使用導入的正確方法是什麼?

+1

@StoryTeller:嵌套的包,進口和引用嵌套包往往是混亂,無關與進口語法。 –

回答

12

不,你不會誤解它。這是這個特定項目的包裝結構。

當您導入sklearn,你在一個目錄sklearn,有裏面它另一個包名爲datasets導入一個特殊的Python文件__init__.py。但是,如果sklearn本身不會將嵌套軟件包導入到__init__.py文件中,則不能使用屬性遍歷來訪問該嵌套軟件包。

的解決方案是顯式導入嵌套包,你自己:

import sklearn.datasets 
+0

對於優秀的答案爲+1 – Djentleman

+0

另外,知道'import sklearn as sk','import sklearn.datasets'這樣的語句可以讓你在代碼的後面使用'sk.datasets'。 – silvado

+0

令人困惑的是Numpy可能會導出所有子包 - 對於scikit-learn,由於包的大小,這根本不可行。 –

相關問題