2016-12-28 74 views
0

當使用scikit學習或其他類似的Python庫,有什麼做的區別:導入整個模塊與從python模塊導入所需方法有什麼區別?

import sklearn.cluster as sk 
model = sk.KMeans(n_clusters=n) 

而且

from sklearn.cluster import KMeans 
model = KMeans(n_clusters=n) 

是否有任何優勢,使用一種方法比其他?

+0

歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [在主題](http://stackoverflow.com/help/on-topic)和[如何提問](http://stackoverflow.com/help/how-to-ask)適用於此處。 StackOverflow不是一個編碼或教程服務。 這在Python文檔和許多文本中都有很好的介紹,包括硬拷貝和在線文檔。 – Prune

+2

正如[這裏]所述(https://softwareengineering.stackexchange.com/questions/187403/import-module-vs-from-module-import-function/187471)「*導入模塊不會浪費任何東西;模塊總是完全導入*「所以沒有辦法導入*只有*從模塊的具體事情 – CoryKramer

+1

@Prune從**如何問**:」例子:好:爲什麼使用float而不是int給我不同的結果當我所有的輸入都是整數?「 - 爲什麼我的問題與例子不同? –

回答

1

那麼,在您的第一個示例中,您已將模塊sklearn.cluster作爲sk進行訪問,您可以相應地引用其成員。在第二個示例中,您只導入了sklearn.cluster,KMeans的一個成員,因此只有該成員可以訪問。這是不同的。

至於優點?不管哪一個讓你的代碼更容易閱讀。

+2

「*你只輸入了一個成員...所以只有這個成員可以訪問*」我會小心這個措辭。他們實際上已經導入了*整個模塊*,僅僅是'kMeans'是可訪問的* – CoryKramer

+0

這可能是一個語義問題。是的,整個模塊被加載(從'sys.modules'中可以看到),但我指的是'import'關鍵字。 – 2rs2ts