2022 年你應該知道的 5 個 Python 模塊
已發表: 2021-01-08Python 是一種在全世界贏得人心的編程語言。 從編碼社區到數據科學社區,Python 絕對是所有人的最愛。 它受歡迎的原因是 Python 加載了廣泛的庫和模塊,使開發成為一項輕鬆的任務。
雖然我們之前已經詳細討論了 Python 庫,但今天,我們將專注於 Python 模塊。
目錄
什麼是 Python 模塊?
簡單來說,Python 模塊是一個 Python 對象,由任意命名的屬性組成,可用於綁定和引用。 本質上,模塊可以定義函數、類和變量。 模塊可幫助您以邏輯方式組織 Python 代碼。 通過將相關代碼分組到模塊中,可以使 Python 代碼更易於使用和理解。
在 Python 中,您可以通過三種方式定義模塊:
- 你可以用 Python 編寫一個模塊。
- 您可以用 C 編寫模塊並在運行時動態加載它。
- 您可以使用解釋器中固有的內置 Python 模塊。
什麼是模塊搜索路徑?
搜索路徑是指解釋器在導入模塊之前搜索的目錄列表。 假設您要執行以下語句:
進口模組
當解釋器執行此語句時,它將在從多個來源組裝的目錄列表中搜索 mod.py,包括:
- 您從中運行輸入腳本的目錄或當前目錄(假設解釋器以交互方式運行)。
- 如果設置了PYTHONPATH環境變量,它將搜索其中包含的目錄列表。
- 在安裝 Python 時配置的安裝相關目錄的列表。
您可以使用從 sys 模塊進一步生成的 Python 變量 sys.path 訪問生成的搜索路徑:
>>> 導入系統
>>> 系統路徑
[”, 'C:\\Users\\john\\Documents\\Python\\doc', 'C:\\Python36\\Lib\\idlelib',
'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib',
'C:\\Python36', 'C:\\Python36\\lib\\site-packages']
導入模塊後,您可以使用模塊的__file__屬性確定其位置,如下所示:
>>> 導入模組
>>> mod.__file__
'C:\\Users\\john\\mod.py'
>>> 重新導入
>>> re.__file__
'C:\\Python36\\lib\\re.py'
但是,請記住, __file__的目錄部分應該是包含在 sys.path 中的目錄。
現在您已經了解了 Python 模塊的本質,讓我們來看看一些最好的 Python 模塊。
頂級 Python 模塊
1.“導入”聲明
通過在一個 Python 源文件中執行 import 語句,您可以將任何 Python 源文件用作模塊。 import語句的語法是:
導入模塊1[,模塊2[,…模塊N]
當您運行導入語句時,解釋器將導入提供的模塊(如果它存在於搜索路徑中)。 例如,如果您希望導入模塊 calc.py,您必須編寫並執行以下命令:
# 導入模塊 calc.py
導入計算
打印添加(10,2)
成功執行此命令後,輸出將如下所示:
12
關於 Python 模塊要記住的重要一點是,無論您導入模塊多少次,它都只會加載一次。 這有助於防止在多次導入的情況下重複執行模塊。
2.“來自……進口”聲明
在 Python 中,“from...import”語句允許您從模塊中導入特定屬性。 以下是“from...import”語句的示例:
從模組名導入 *
# 導入 sqrt() 和階乘
# 模塊數學
從數學導入 sqrt,階乘
# 如果我們只是做“導入數學”,那麼
# math.sqrt(16) 和 math.factorial()
# 是必要的。
打印 sqrt(16)

打印階乘(6)
運行此代碼,您將獲得:
4.0
720
使用此模塊,您可以將特定模塊中包含的所有項目導入當前命名空間。
3. “dir()”函數
在 Python 中,dir() 是一個內置函數,它返回一個排序的字符串列表,其中包含一個模塊中定義的所有模塊、函數和變量的名稱。 下面給出了 dir() 函數的示例:
#!/usr/bin/python
# 導入內置模塊隨機
隨機導入
打印目錄(數學)
執行時,此代碼將返回以下結果:
['BPF','LOG4','NV_MAGICCONST','RECIP_BPF','隨機',
'SG_MAGICCONST'、'SystemRandom'、'TWOPI'、'WichmannHill'、
'_BuiltinMethodType','_MethodType','__all__',
'__builtins__'、'__doc__'、'__file__'、'__name__'、
'__package__'、'_acos'、'_ceil'、'_cos'、'_e'、'_exp'、
'_hashlib','_hexlify','_inst','_log','_pi','_random',
'_sin','_sqrt','_test','_test_generator','_urandom',
'_warn','betavariate','選擇','除法',
'expovariate','gammavariate','gauss','getrandbits',
'getstate'、'jumpahead'、'lognormvariate'、'normalvariate'、
'帕累托變量','randint','隨機','randrange',
'樣本','種子','setstate','洗牌','三角形',
'uniform', 'vonmisesvariate', 'weibullvariate']
在上面給出的輸出中,特殊字符串變量__file__指向加載模塊的文件名,而__name__成為模塊的名稱。
4. globals() 和 locals() 函數
您可以使用 globals() 和 locals() 函數在全局和本地命名空間中返回模塊名稱。 但是,這取決於您調用名稱的位置。 如果您在另一個函數中調用 globals() 函數,它將返回可以從該特定函數全局訪問的所有名稱。 相反,如果從函數內部調用 locals() 函數,它將生成您可以從特定函數本地訪問的所有名稱。
5. 通常,當您將模塊導入腳本時,位於模塊頂層部分的代碼只會執行一次。 在這種情況下,如果您希望重新執行模塊中的頂級代碼,則 reload() 函數是首選函數。 此功能允許您重新導入以前導入的模塊。
reload() 函數的語法如下:
重新加載(模塊名稱)
在語法中, module_name指的是您希望重新加載的模塊的名稱——它與包含模塊名稱的字符串無關。 例如,如果要重新加載 hello 模塊,則必須編寫:
重新加載(你好)
結論
在 Python 中,包和模塊是相互關聯的。 Python 包使用點表示法促進模塊命名空間的層次結構。 Python 包可以防止模塊名稱之間的衝突(重疊),而 Python 模塊可以防止全局變量名稱之間的衝突。
如果您想了解數據科學,請查看 IIIT-B 和 upGrad 的數據科學 PG 文憑,該文憑專為在職專業人士而設,提供 10 多個案例研究和項目、實用的實踐研討會、與行業專家的指導、1-與行業導師面對面交流,400 多個小時的學習和頂級公司的工作協助。
什麼是 Python Anaconda,為什麼如此受歡迎?
Anaconda 是 Python 和 R 的包管理器。它被認為是最受數據科學愛好者歡迎的平台之一。 以下是使 Anaconda 領先於競爭對手的一些原因。 其強大的分發系統有助於管理具有 300 多個庫的 Python 等語言。 它是一個免費的開源平台。 它的開源社區有許多合格的開發人員,他們不斷地幫助新手。 它具有各種基於 AI 和 ML 的工具,可以輕鬆地從不同來源提取數據。 Anaconda 擁有超過 1500 個 Python 和 R 數據科學包,被認為是測試和訓練模型的行業標準。
列舉一些最流行的用於圖像處理的 Python 庫。
Python 是最適合圖像處理的語言,因為它提供了功能豐富的庫。 以下是一些使圖像處理非常方便的頂級 Python 庫。 OpenCV 是用於視覺任務(例如圖像處理以及對象和人臉檢測)的最流行和廣泛使用的 Python 庫。 它非常快速和高效,因為它最初是用 C++ 編寫的。 如果沒有 Sci-Kit Image,關於 Python 圖像處理庫的討論是不完整的。 它是一個簡單直接的庫,可用於任何計算機視覺任務。 SciPy 主要用於數學計算,但它也能夠執行圖像處理。 人臉檢測、卷積和圖像分割是 SciPy 提供的一些功能。
為什麼大多數數據科學家更喜歡 Python 而不是其他語言?
有許多語言,如 R 和 Julia,可用於數據科學,但由於多種原因,Python 被認為是最適合它的語言。 其中一些原因如下所述: Python 比 Scala 和 R 等其他語言更具可擴展性。它的可擴展性在於它為程序員提供的靈活性。 它擁有種類繁多的數據科學庫,例如 NumPy、Pandas 和 Scikit-learn,這使其比其他語言更具優勢。 龐大的 Python 程序員社區不斷為該語言做出貢獻,並幫助新手與 Python 一起成長。