2022 年你應該知道的 5 個 Python 模塊

已發表: 2021-01-08

Python 是一種在全世界贏得人心的編程語言。 從編碼社區到數據科學社區,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 一起成長。