導航:首頁 > 編程語言 > python中所有的模塊

python中所有的模塊

發布時間:2024-07-01 13:25:26

1. python中的模塊和包的區別

1、模塊(Mole)就是包含代碼的文件,不一定是Python代碼,有四種代碼類型的模塊:

•使用Python寫的程序( .py文件)

•C或C++擴展(已編譯為共享庫或DLL文件)

•包(包含多個模塊)

•內建模塊(使用C編寫並已鏈接到Python解釋器內)

使用模塊可以提高代碼的可維護性和重復使用,還可以避免函數名和變數名沖突。相同名字的函數和變數完全可以分別存在不同的模塊中,所以編寫自己的模塊時,不必考慮名字會與其他模塊沖突,但要注意盡量不要與內置函數名字沖突。

2、包(Package)就是包含模塊文件的目錄,目錄名稱就是包名稱,目錄中可以包含目錄,子目錄也是包,但包名稱應該包含上一級目錄的名稱。Python引入了按目錄來組織模塊是為了避免模塊名沖突,不同包中的模塊名可以相同。

注意,每一個包目錄下面都會有一個__init__.py的文件,這個文件是必須存在的,否則,Python就把這個目錄當成普通目錄,而不是一個包。__init__.py可以是空文件,也可以有Python代碼,因為__init__.py本身就是一個模塊,而它的模塊名就是包名。

2. python常用到哪些庫

Python作為一個設計優秀的程序語言,現在已廣泛應用於各種領域,依靠其強大的第三方類庫,Python在各個領域都能發揮巨大的作用。
下面我們就來看一下python中常用到的庫:
數值計算庫:
1. NumPy
支持多維數組與矩陣運算,也針對數組運算提供大量的數學函數庫。通常與SciPy和Matplotlib一起使用,支持比Python更多種類的數值類型,其中定義的最重要的對象是稱為ndarray的n維數組類型,用於描述相同類型的元素集合,可以使用基於0的索引訪問集合中元素。
2. SciPy
在NumPy庫的基礎上增加了眾多的數學、科學及工程計算中常用的庫函數,如線性代數、常微分方程數值求解、信號處理、圖像處理、稀疏矩陣等,可進行插值處理、信號濾波,以及使用C語言加速計算。
3. Pandas
基於NumPy的一種工具,為解決數據分析任務而生。納入大量庫和一些標準的數據模型,提供高效地操作大型數據集所需的工具及大量的能快速便捷處理數據的函數和方法,為時間序列分析提供很好的支持,提供多種數據結構,如Series、Time-Series、DataFrame和Panel。
數據可視化庫:
4. Matplotlib
第一個Python可視化庫,有許多別的程序庫都是建立在其基礎上或者直接調用該庫,可以很方便地得到數據的大致信息,功能非常強大,但也非常復雜。
5. Seaborn
利用了Matplotlib,用簡潔的代碼來製作好看的圖表。與Matplotlib最大的區別為默認繪圖風格和色彩搭配都具有現代美感。
6. ggplot
基於R的一個作圖庫ggplot2,同時利用了源於《圖像語法》(The Grammar of Graphics)中的概念,允許疊加不同的圖層來完成一幅圖,並不適用於製作非常個性化的圖像,為操作的簡潔度而犧牲了圖像的復雜度。
7. Bokeh
跟ggplot一樣,Bokeh也基於《圖形語法》的概念。與ggplot不同之處為它完全基於Python而不是從R處引用。長處在於能用於製作可交互、可直接用於網路的圖表。圖表可以輸出為JSON對象、HTML文檔或者可交互的網路應用。
8. Plotly
可以通過Python notebook使用,與Bokeh一樣致力於交互圖表的製作,但提供在別的庫中幾乎沒有的幾種圖表類型,如等值線圖、樹形圖和三維圖表。
9. pygal
與Bokeh和Plotly一樣,提供可直接嵌入網路瀏覽器的可交互圖像。與其他兩者的主要區別在於可將圖表輸出為SVG格式,所有的圖表都被封裝成方法,且默認的風格也很漂亮,用幾行代碼就可以很容易地製作出漂亮的圖表。
10. geoplotlib
用於製作地圖和地理相關數據的工具箱。可用來製作多種地圖,比如等值區域圖、熱度圖、點密度圖。必須安裝Pyglet(一個面向對象編程介面)方可使用。
11. missingno
用圖像的方式快速評估數據缺失的情況,可根據數據的完整度對數據進行排序或過濾,或者根據熱度圖或樹狀圖對數據進行修正。
web開發庫:
12. Django
一個高級的Python Web框架,支持快速開發,提供從模板引擎到ORM所需的一切東西,使用該庫構建App時,必須遵循Django的方式。
13. Socket
一個套接字通訊底層庫,用於在伺服器和客戶端間建立TCP或UDP連接,通過連接發送請求與響應。
14. Flask
一個基於Werkzeug、Jinja 2的Python輕量級框架(microframework),默認配備Jinja模板引擎,也包含其他模板引擎或ORM供選擇,適合用來編寫API服務(RESTful rervices)。
15. Twisted
一個使用Python實現的基於事件驅動的網路引擎框架,建立在deferred object之上,一個通過非同步架構實現的高性能的引擎,不適用於編寫常規的Web Apps,更適用於底層網路。
資料庫管理:

16. MySQL-python
又稱MySQLdb,是Python連接MySQL最流行的一個驅動,很多框架也基於此庫進行開發。只支持Python 2.x,且安裝時有許多前置條件。由於該庫基於C語言開發,在Windows平台上的安裝非常不友好,經常出現失敗的情況,現在基本不推薦使用,取代品為衍生版本。
17. mysqlclient
完全兼容MySQLdb,同時支持Python 3.x,是Django ORM的依賴工具,可使用原生SQL來操作資料庫,安裝方式與MySQLdb一致。
18. PyMySQL
純Python實現的驅動,速度比MySQLdb慢,最大的特點為安裝方式簡潔,同時也兼容MySQL-python。
19. SQLAlchemy
一種既支持原生SQL,又支持ORM的工具。ORM是Python對象與資料庫關系表的一種映射關系,可有效提高寫代碼的速度,同時兼容多種資料庫系統,如SQLite、MySQL、PostgreSQL,代價為性能上的一些損失。
自動化運維:
20. jumpsever跳板機
一種由Python編寫的開源跳板機(堡壘機)系統,實現了跳板機的基本功能,包含認證、授權和審計,集成了Ansible、批量命令等。
支持WebTerminal Bootstrap編寫,界面美觀,自動收集硬體信息,支持錄像回放、命令搜索、實時監控、批量上傳下載等功能,基於SSH協議進行管理,客戶端無須安裝agent。主要用於解決可視化安全管理,因完全開源,容易再次開發。
21. Mage分布式監控系統
一種用Python開發的自動化監控系統,可監控常用系統服務、應用、網路設備,可在一台主機上監控多個不同服務,不同服務的監控間隔可以不同,同一個服務在不同主機上的監控間隔、報警閾值可以不同,並提供數據可視化界面。
22. Mage的CMDB
一種用Python開發的硬體管理系統,包含採集硬體數據、API、頁面管理3部分功能,主要用於自動化管理筆記本、路由器等常見設備的日常使用。由伺服器的客戶端採集硬體數據,將硬體信息發送至API,API負責將獲取的數據保存至資料庫中,後台管理程序負責對伺服器信息進行配置和展示。
23. 任務調度系統
一種由Python開發的任務調度系統,主要用於自動化地將一個服務進程分布到其他多個機器的多個進程中,一個服務進程可作為調度者依靠網路通信完成這一工作。
24. Python運維流程系統
一種使用Python語言編寫的調度和監控工作流的平台,內部用於創建、監控和調整數據管道。允許工作流開發人員輕松創建、維護和周期性地調度運行工作流,包括了如數據存儲、增長分析、Email發送、A/B測試等諸多跨多部門的用例。
GUI編程:
25. Tkinter
一個Python的標准GUI庫,可以快速地創建GUI應用程序,可以在大多數的UNIX平台下使用,同樣可以應用在Windows和Macintosh系統中,Tkinter 8.0的後續版本可以實現本地窗口風格,並良好地運行在絕大多數平台中。
26. wxPython
一款開源軟體跨平台GUI庫wxWidgets的Python封裝和Python模塊,是Python語言的一套優秀的GUI圖形庫,允許程序員很方便地創建完整的、功能健全的GUI用戶界面。
27. PyQt
一個創建GUI應用程序的工具庫,是Python編程語言和Qt的成功融合,可以運行在所有主要操作系統上,包括UNIX、Windows和Mac。PyQt採用雙許可證,開發人員可以選擇GPL和商業許可,從PyQt的版本4開始,GPL許可證可用於所有支持的平台。
28. PySide
一個跨平台的應用程式框架Qt的Python綁定版本,提供與PyQt類似的功能,並相容API,但與PyQt不同處為其使用LGPL授權。
更多Python知識請關注Python自學網。

3. python有哪些庫

Python中6個最重要的庫:

第一、NumPy

NumPy是Numerical
Python的簡寫,是Python數值計算的基石。它提供多種數據結構、演算法以及大部分涉及Python數值計算所需的介面。NumPy還包括其他內容:

①快速、高效的多維數組對象ndarray

②基於元素的數組計算或數組間數學操作函數

③用於讀寫硬碟中基於數組的數據集的工具

④線性代數操作、傅里葉變換以及隨機數生成

除了NumPy賦予Python的快速數組處理能力之外,NumPy的另一個主要用途是在演算法和庫之間作為數據傳遞的數據容器。對於數值數據,NumPy數組能夠比Python內建數據結構更為高效地存儲和操作數據。

第二、pandas

pandas提供了高級數據結構和函數,這些數據結構和函數的設計使得利用結構化、表格化數據的工作快速、簡單、有表現力。它出現於2010年,幫助Python成為強大、高效的數據分析環境。常用的pandas對象是DataFrame,它是用於實現表格化、面向列、使用行列標簽的數據結構;以及Series,一種一維標簽數組對象。

pandas將表格和關系型資料庫的靈活數據操作能力與Numpy的高性能數組計算的理念相結合。它提供復雜的索引函數,使得數據的重組、切塊、切片、聚合、子集選擇更為簡單。由於數據操作、預處理、清洗在數據分析中是重要的技能,pandas將是重要主題。

第三、matplotlib

matplotlib是最流行的用於制圖及其他二維數據可視化的Python庫,它由John D.
Hunter創建,目前由一個大型開發者團隊維護。matplotlib被設計為適合出版的制圖工具。

對於Python編程者來說也有其他可視化庫,但matplotlib依然使用最為廣泛,並且與生態系統的其他庫良好整合。

第四、IPython

IPython項目開始於2001年,由Fernando
Pérez發起,旨在開發一個更具交互性的Python解釋器。在過去的16年中,它成為Python數據技術棧中最重要的工具之一。

盡管它本身並不提供任何計算或數據分析工具,它的設計側重於在交互計算和軟體開發兩方面將生產力最大化。它使用了一種執行-探索工作流來替代其他語言中典型的編輯-編譯-運行工作流。它還提供了針對操作系統命令行和文件系統的易用介面。由於數據分析編碼工作包含大量的探索、試驗、試錯和遍歷,IPython可以使你更快速地完成工作。

第五、SciPy

SciPy是科學計算領域針對不同標准問題域的包集合。以下是SciPy中包含的一些包:

①scipy.integrate數值積分常式和微分方程求解器

②scipy.linalg線性代數常式和基於numpy.linalg的矩陣分解

③scipy.optimize函數優化器和求根演算法

④scipy.signal信號處理工具

⑤scipy.sparse稀疏矩陣與稀疏線性系統求解器

SciPy與Numpy一起為很多傳統科學計算應用提供了一個合理、完整、成熟的計算基礎。

第六、scikit-learn

scikit-learn項目誕生於2010年,目前已成為Python編程者首選的機器學習工具包。僅僅七年,scikit-learn就擁有了全世界1500位代碼貢獻者。其中包含以下子模塊:

①分類:SVM、最近鄰、隨機森林、邏輯回歸等

②回歸:Lasso、嶺回歸等

③聚類:K-means、譜聚類等

④降維:PCA、特徵選擇、矩陣分解等

⑤模型選擇:網格搜索、交叉驗證、指標矩陣

⑥預處理:特徵提取、正態化

scikit-learn與pandas、statsmodels、IPython一起使Python成為高效的數據科學編程語言。

4. 從C#到Python——5模塊和包

本章是《從到Python》系列連載的最後一章 內容較簡單 主要介紹Python中模塊與包的使用方法 如果你對這部分內容已經比較熟悉 就不要再浪費時間看了 寫這一章只是為了整個系列完整而已 沒什麼新的東西(本章內容主要參考了《Python精要參考》的第八章《模塊和包》)

模塊

Python的腳本都是用擴展名為py的文本文件保存的 一個腳本可以單獨運行 也可以導入另一個腳本中運行 當腳本被導入運行時 我們將其稱為模塊(mole) 模塊是Python組織代碼的基本方式

模塊名與腳本的文件名相同 例如我們編寫了一個名為Items py的腳本 則可在另外一個腳本中用import Items語句來導入它 在導入時 Python解釋器會先在腳本當前目錄下查找 如果沒有則在sys path包含的路徑中查找

在導入模塊時 Python會做以下三件事

( ) 為模塊文件中定義的對象創建一個名字空間 通過這個名字空間可以訪問到模塊中定義的函數及變數

( ) 在新創建的名字空間里執行模塊文件

( ) 創建一個名為模塊文件的對象 該對象引用模塊的名字空間 這樣就可以通過這個對象訪問模塊中的函數及變數 如

importsys printsys path

如果要同時導入多個模塊 可以用逗號分隔 如 import sys os

可以使用as關鍵字來改變模塊的引用對象名 如 import os as system

也可以用from語句將模塊中的對象直接導入到當前的名字空間(不創建模塊名字空間的引用對象) 如 from socket import gethostname

from語句支持逗號分割的對象 也可以使用星號(*)代表模塊中除下劃線開頭的所有對象 如 from socket import * 這是個懶省事的方法 我是經常用 不過用之前最好先搞清楚會不會覆蓋當前名字空間中的函數名等 總之不是個好習慣:)

除了Python腳本(不僅限於py 還包括pyc和pyo) import語句還可以導入C或擴展(已編譯為共享庫或DLL文件) 包(包含多個模塊 一會介紹)和內建模塊(使用C編寫並已鏈接到Python解釋器內) 不過除了包 另外兩個我也沒用過:(

Python解釋器在第一次import一個py文件的時候 會嘗試將其編譯為位元組碼文件 這個文件的擴展名通常為 pyc 它是已經完成語法檢查並轉譯為虛擬機指令的代碼 後邊的導入操作會直接讀取 pyc文件而不是 py文件 一般而言速度會更快

Python的模塊可以按目錄組織為包(package) 一般來說 我們將多個關系密切的模塊組織成一個包 以便於維護和使用 同時可有效避免名字空間沖突 創建一個包的步驟是 建立一個名字為包名字的文件夾 並在該文件夾下創建一個__init__ py文件 你可以根據需要在該文件夾下存放腳本文件 已編譯擴展及子包

一個典型的包可能有以下結構:

package / __init__ py subPack / __init__ py mole_ py mole_ py mole_ py subPack / __init__ py mole_ py mole_ py ……

只要目錄下存在__init__ py 就表明此目錄應被作為一個package處理 在最簡單的例子中 __init__ py 是一個空文件 不過一般我們都要在__init__ py中做一些包的初始化動作 或是設定一些變數

最常用的變數是__all__ 當使用包的人在用from pack import * 語句導入的時候 系統會查找目錄pack下的__init__ py文件中的__all__這個變數 __all__是一個list 包含了所有應該被導入的模塊名稱 例如 __all__ = [ m m m ] 表示當from pack import * 時會import 這三個mole

如果沒有定義__all__ from pack import * 不會保證所有的子模塊被導入 所以要麼通過__init py__ 要麼顯式地import 以保證子模塊被導入 如 import pack m pack m pack m

本章小結

本章介紹了Python中模塊與包的使用方法 要點如下

( ) 模塊是一個可以導入的Python腳本文件

( ) 包是一堆按目錄組織的模塊和子包 目錄下的__init__ py文件存放了包的信息

( ) 可以用import import as form import 等語句導入模塊和包

總之 模塊與包是在物理上組織Python代碼復用的一種有效方式 它有點類似於中的程序集(Assembly) 初學Python不一定要會自己建立模塊和包 但一定要學會使用各種包 這正是Python的強大之處 Python帶著各種各樣的battery 當你想完成一項功能時 最好先去搜索是不是有相關的包能夠復用(多數情況下是這樣的 因為在各種領域都有太多的人在為Python作著貢獻) 而且 絕大多數Python包都是開源的 研讀優秀的代碼也是提高編程能力的一種有效途徑

進一步閱讀的參考

《從C#到Python》系列連載到今天就全部寫完了 非常感謝各位的支持 鼓勵以及批評 使我能夠不斷完善和提高 讀完這個連載 在Python的語法上應該夠應付一陣了 當然結合具體的應用領域 還是有很多東西需要不斷學習 在此向大家推薦一些有用的讀物

[ ] 科學計算方面 這個是我的應用Python的主陣地 推薦HYRY Studio的《用Python做科學計算》(見) 我個人認為非常優秀的一本原創著作(這么好的書不知為何不正式出版 欽佩作者的rp !)

[ ] GUI開發方面 如果你用wxPython 那麼肯定要看《wxPython in Action》(中文版見) 而我個人主要用PyQt 這方面值得推薦的讀物是柴樹杉翻譯的《PyQt 編程簡介》(見) 如果英文好 還是推薦看《Rapid GUI Programming with Python and Qt》(英文pdf版地址 Oct pdf)

[ ] 開發方面 這個我還沒有涉及 Django的資料網上也是大把了 其它的Python Web開發框架也是多如牛毛 自己找找吧 )

lishixin/Article/program/ASP/201311/21672

閱讀全文

與python中所有的模塊相關的資料

熱點內容
梁和柱加密怎麼算 瀏覽:434
模塊化編程通俗解釋 瀏覽:448
深圳php程序員招聘 瀏覽:829
前端網頁和asp頁面如何放到伺服器上 瀏覽:984
伺服器地址如何獲取安卓 瀏覽:136
怎麼投訴猿輔導app 瀏覽:929
財務會計pdf 瀏覽:90
php訪問mssql 瀏覽:511
咪咕會員app怎麼取消自動續費 瀏覽:277
後台伺服器是什麼 瀏覽:584
ci加密解密 瀏覽:226
程序員眼中的漂亮女人 瀏覽:713
java命令生成pdf文檔 瀏覽:113
車載安卓大屏怎麼安裝文件管理 瀏覽:39
realme系統文件夾 瀏覽:293
android開發框架ui 瀏覽:576
軟體伺服器ip地址怎麼查看器 瀏覽:962
iis60命令執行 瀏覽:904
vc網路編程pdf 瀏覽:909
榮耀手環怎麼寫加密卡 瀏覽:484