1. 程式人生 > >第11章:Python第三方庫縱覽

第11章:Python第三方庫縱覽

註明:本系列課程專為全國計算機等級考試二級 Python 語言程式設計考試服務

目錄

考綱考點

知識導圖

1、網路爬蟲方向

requests

scrapy

2、資料分析方向

numpy

scipy

pandas

3、文字處理方向

pdfminer

openpyxl

python-docx

beautifulsoup4

4、資料視覺化方向

資料視覺化

matplotib

TVTK

5、使用者圖形介面方向

pyqt5

wxpython

6、機器學習方向

Scikit-learn

Tensorflow

Theano

7、Web開發方向

Django

Pyramid

Flask

8、遊戲開發方向

Web開發方向

Pygame

Panda3D

cocos2d

9、更多第三方庫

PIL

SymPy

NLTK

WeRoBot

MyQR

本章小結


考綱考點

  • 更廣泛的Python計算生態,只要求瞭解第三方庫的名稱,不限於以下領域: 網路爬蟲、資料分析、文字處理、資料視覺化、使用者圖形介面、機器學習、Web開發、遊戲開發等

知識導圖

1、網路爬蟲方向

  • 網路爬蟲是自動進行HTTP訪問並捕獲HTML頁面的程式。Python語言提供了多個具備網路爬蟲功能的第三方庫。這裡,僅介紹2個常用的Python網路爬蟲庫:requests和scrapy

requests

  • requests庫是一個簡潔且簡單的處理HTTP請求的第三方庫,它的最大優點是程式編寫過程更接近正常URL訪問過程。這個庫建立在Python語言的urllib3庫基礎上。request庫支援非常豐富的連結訪問功能。
  • 安裝requests庫在Windows的cmd命令列使用如下命令:
:\>pip install requests

scrapy

  • scrapy是Python開發的一個快速的、高層次的Web獲取框架。不同於簡單的網路爬蟲功能,scrapy框架本身包含了成熟網路爬蟲系統所應該具有的部分共用功能,
  • scrapy用途廣泛,可以應用於專業爬蟲系統的構建、資料探勘、網路監控和自動化測試
    等領域。
  • 安裝scrapy庫在Windows的cmd命令列使用如下命令:
:\>pip install scrapy

2、資料分析方向

資料分析是Python的一個優勢方向,具有大批高質量的第三方庫。這裡僅介紹3個最常用的生態庫:numpy、scipy和pandas

numpy

  • numpy是Python的一種開源數值計算擴充套件第三方庫,用於處理資料型別相同的多維陣列(ndarray),簡稱“陣列”。
  • 這個庫可用來儲存和處理大型矩陣,比Python語言提供的列表結構要高效的多。numpy提供了許多高階的數值程式設計工具,如:矩陣運算、向量處理、N維資料變換等。
  • numpy內部是C語言編寫,對外採用Python語言進行封裝,因此,在進行資料運算時,基於numpy的Python程式可以達到接近C語言的處理速度。numpy也成為Python資料分析方向各其他庫的基礎依賴庫,已經成為了科學計算事實上的“標準庫”。
  • 安裝numpy庫在Windows的cmd命令列使用如下命令:
:\>pip install numpy

scipy

  • scipy是一款方便、易於使用、專為科學和工程設計的Python工具包。在numpy庫的基礎上增加了眾多的數學、科學以及工程計算中常用的庫函式。它包括統計、優化、整合、線性代數、傅立葉變換、訊號分析、影象處理、常微分方程求解等眾多模組。
  • 安裝scipy庫在Windows的cmd命令列使用如下命令:
:\>pip install scipy

pandas

  • pandas是基於numpy擴充套件的一個重要第三方庫,它是為了解決資料分析任務而建立的。Pandas提供了一批標準的資料模型和大量快速便捷處理資料的函式和方法,提供了高效地操作大型資料集所需的工具
  • pandas 提供兩種最基本的資料型別:Series和DataFrame,分別代表一維陣列和二維陣列型別。
  • 安裝pandas庫在Windows的cmd命令列使用如下命令:
:\>pip install pandas

3、文字處理方向

  • Python語言非常適合處理文字,因此,在這個方向也形成了大量有價值的第三方庫。這裡介紹4個最常用的生態庫:pdfminer、openpyxl、python-docx、beautifulsoup4

pdfminer

  • pdfminer是一個可以從PDF文件中提取各類資訊的第三方庫。與其他PDF相關的工具不同,它能夠完全獲取並分析P D F 的文字資料。Pdfminer能夠獲取PDF中文字的準確位置、字型、行數等資訊,能夠將PDF檔案轉換為HTML及文字格式。
  • pdfminer包含兩個重要的工具: pdf2txt.py 和dumppdf.py。
  • pdf2txt.py能夠從PDF檔案中提取所有文字內容。dumppdf.py能夠把PDF檔案內容變成XML格式,並進一步提取其中的圖片。
  • 安裝pdfminer庫在Windows的cmd命令列使用如下命令:
:\>pip install pdfminer

openpyxl

  • openpyxl是一個處理Microsoft Excel文件的Python第三方庫,它支援讀寫Excel的xls、xlsx、xlsm、xltx、xltm等格式檔案,並進一步能處理Excel檔案中excel工作表、表單和資料單元。
  • 安裝openpyxl庫在Windows的cmd命令列使用如下命令:
:\>pip install openpyxl

python-docx

  • python-docx是一個處理Microsoft Word文件的Python第三方庫,它支援讀取、查詢以及修改doc、docx等格式檔案,並能夠對Word常見樣式進行程式設計設定,包括:字元樣式、段落樣式、表格樣式等,進一步可以使用這個庫實現新增和修改文字、影象、樣式和文件等功能。
  • 安裝python-docx庫在Windows的cmd命令列使用如下命令:
:\>pip install openpyxl

beautifulsoup4

  • beautifulsoup4庫,也稱為Beautiful Soup庫或bs4庫,用於解析和處理HTML和XML。需要注意,它不是BeautifulSoup庫。它的最大優點是能根據HTML和XML語法建立解析樹,進而高效解析其中的內容。
  • beautifulsoup4庫將資料從HTML和XML檔案中解析出來,它能夠提供一種符合習慣的方法去遍歷搜尋和修改解析樹,將專業的Web頁面格式解析部分封裝成函式,提供了若干有用且便捷的處理函式。
  • 安裝beautifulsoup4庫在Windows的cmd命令列使用如下命令:
:\>pip install beautifulsoup4

4、資料視覺化方向

資料視覺化

  • 資料視覺化指根據資料特點將其展示為易於理解圖形的過程。Python語言在資料視覺化方面具有較強的優勢。這裡介紹3個最常用的生態庫:matplotlib、TVTK、mayavi

matplotib

  • matplotlib是提供資料繪圖功能的第三方庫,主要進行二維圖表資料展示,廣泛用於科學計算的資料視覺化。使用這個庫可以利用Python程式繪製超過100種資料視覺化效果。
  • 安裝matplotlib庫在Windows的cmd命令列使用如下命令:
:\>pip install matplotlib

TVTK

  • TVTK庫在標準的VTK庫之上用Traits庫進行封裝的Python第三方庫。視覺工具函式庫(VTK)是一個開源、跨平臺、支援平行處理的圖形應用函式庫,它是專業可程式設計的三維視覺化工具。TVTK在Python生態系統中被等同於VTK。
  • 安裝matplotlib庫在Windows的cmd命令列使用如下命令:
:\>pip install vtk
  • mayavi基於VTK開發,完全用Python編寫,提供了一個更為方便實用的視覺化軟體,可以簡潔地嵌入到使用者編寫的Python程式中,或者直接使用其面向指令碼的API快速繪製三維視覺化圖形。值得注意的是,mayavi也被稱為mayavi2。
  • mayavi庫在Windows平臺上暫時不能方便的使用pip命令安裝,建議使用檔案安裝,請下載mayavi對應版本檔案,然後在本地安裝。

5、使用者圖形介面方向

  • Python標準庫內建了一個GUI庫——tkinter,這個庫基於Tck/Tk開發,然而,這個庫十分陳舊,提供的開發控制元件也很有限,編寫出來的GUI風格與現代程式GUI風格相差甚遠,從使用者體驗角度說,tkinter庫並不成熟。
  • 這裡介紹3個高質量的使用者圖形介面Python生態庫:pyqt5、wxpython、pygtk

pyqt5

  • pyqt5是Qt5應用框架的Python第三方庫,它有超過6 2 0個類和近6 0 0 0個函式和方法。它是Python中最為成熟的商業級GUI第三方庫。這個庫是Python語言當前最好的GUI第三方庫,它可以在Windows、Linux和Mac OS X等作業系統上跨平臺使用。
  • pyqt5採用“訊號-槽”機制將事件和對應的處理程式進行繫結。pyqt5窗體有很多內建訊號,也可以自定義訊號。
  • 安裝pyqt5庫在Windows的cmd命令列使用如下命令:
:\>pip install pyqt5

wxpython

wxPython是Python語言的一套優秀的GUI圖形庫,它是跨平臺GUI庫wxWidgets的Python封裝,可以使Python程式設計師能夠輕鬆地建立健壯可靠、功能強大的圖形使用者介面的程式。

安裝wxpython庫在Windows的cmd命令列使用如下命令:

:\>pip install wxpython
  • pygtk是基於GTK+的Python語言封裝,它提供了各式的可視元素和功能,能夠輕鬆建立具有圖形使用者介面的程式。pygtk具有跨平臺性,利用它編寫的程式碼能夠不加修改地穩定執行在各作業系統中,如Windows、MacOS、Linux等。
  • 安裝wxpython庫在Windows的cmd命令列使用如下命令:
:\>pip install pygtk

6、機器學習方向

機器學習是人工智慧領域的一個重要分支,Python語言也是機器學習和人工智慧的重要基礎語言。這裡介紹3個高質量的機器學習框架:
Scikit-learn、TensorFlow、Theano

Scikit-learn

  • Scikit-learn是一個簡單且高效的資料探勘和資料分析工具,它基於NumPy、SciPy和matplotlib構建。Scikitlearn的基本功能主要包括6個部分:分類,迴歸,聚類,資料降維,模型選擇和資料預處理。Scikit-learn也被稱為sklearn。
  • 安裝Scikit-learn庫在Windows的cmd命令列使用如下命令:
:\>pip install scikit-learn

Tensorflow

  • TensorFlow是谷歌公司基於DistBelief進行研發的第二代人工智慧學習系統,也是用來支撐著名的AlphaGo系統的後臺框架。Tensor(張量)指N維陣列,Flow(流)指基於資料流圖的計算,TensorFlow描述張量從流圖的一端流動到另一端的計算過程。
  • 安裝TensorFlow庫在Windows的cmd命令列使用如下命令:
:\>pip install tensorflow

Theano

  • Theano為執行深度學習中大規模神經網路演算法的運算而設計,擅長處理多維陣列。Theano開發始於2007,可以理解它是一個運算數學表示式的編譯器,並可以高效執行在GPU或CPU上。Theano是一個偏向底層開發的庫,更像一個研究平臺而非單純的深度學習庫。
  • 安裝Theano庫在Windows的cmd命令列使用如下命令:
:\>pip install theano

7、Web開發方向

  • Web開發是Python語言流行的一個重要方向,主要用於伺服器後端開發。根據Python Web開發框架的複雜程度,這裡依次介紹3個Python第三方生態庫:Django、Pyramid、Flask

Django

  • Django是Python生態中最流行的開源Web應用框架。Django採用模型、模板和檢視的編寫模式,稱為MTV模式。Django中提供了開發網站經常用到的模組,Django的開發理念是DRY(Don't Repeat Yourself),用於鼓勵快速開發,進而減少程式設計師可以建立一個高效能Web應用所花費的時間和精力,形成一種一站式解決方案。
  • 安裝Django庫在Windows的cmd命令列使用如下命令:
:\>pip install django

Pyramid

  • Pyramid是一個通用、開源的Python Web應用程式開發框架。它主要的目的是讓Python開發者更簡單的建立Web應用,相比Django,Pyramid是一個相對小巧、快速、靈活的開源Python Web框架。Pyramid仍然面向較大規模的Web應用,但它更關注靈活性,開發者可以靈活選擇所使用的資料庫、模板風格、URL結構等內容。
  • 安裝Pyramid庫在Windows的cmd命令列使用如下命令:
:\>pip install pyramid

Flask

  • Flask是輕量級Web應用框架,相比Django和Pyramid,它也被稱為微框架。使用Flask開發Web應用十分方便,甚至幾行程式碼即可建立一個小型網站。Flask核心十分簡單,並不直接包含諸如資料庫訪問等的抽象訪問層,而是通過擴充套件模組形式來支援。
  • 安裝Flask庫在Windows的cmd命令列使用如下命令:
:\>pip install flask

8、遊戲開發方向

Web開發方向

  • 遊戲開發是一個有趣的方向,在遊戲邏輯和功能實現層面,Python已經成為重要的支撐性語言。這裡介紹3個Python第三方生態庫:Pygame、Panda3D、cocos2d

Pygame

  • Pygame是在SDL庫基礎上進行封裝的、面向遊戲開發入門的Python第三方庫,除了製作遊戲外,還用於製作多媒體應用程式。其中,SDL(Simple DirectMedia Layer)是開源、跨平臺的多媒體開發庫,通過OpenGL和Direct3D底層函式提供對音訊、鍵盤、滑鼠和圖形硬體的簡潔訪問。
  • Pygame是一個遊戲開發框架,提供了大量與遊戲相關的底層邏輯和功能支援,非常適合作為入門庫理解並實踐遊戲開發
  • 安裝Pygame庫在Windows的cmd命令列使用如下命令:
:\>pip install pygame

Panda3D

  • Panda3D是一個開源、跨平臺的3D渲染和遊戲開發庫,簡答說,它是一個3D遊戲引擎,由迪士尼和卡耐基梅隆大學娛樂技術中心共同進行開發。Panda3D支援Python和C++兩種語言,但對Python支援更全面。
  • Panda3D支援很多當代先進遊戲引擎所支援的特性:法線貼圖、光澤貼圖、HDR、卡通渲染和線框渲染等。
  • 安裝Panda3D庫在Windows的cmd命令列使用如下命令:
:\>pip install panda3d

cocos2d

  • cocos2d是一個構建2D遊戲和圖形介面互動式應用的框架,它包括C++、JavaScript、Swift、Python等多個版本。cocos2d基於OpenGL進行圖形渲染,能夠利用GPU進行加速。cocos2d引擎採用樹形結構來管理遊戲物件,一個遊戲劃分為不同場景,一個場景又分為不同層,每個層處理並響應使用者事件。
  • 安裝cocos2d庫在Windows的cmd命令列使用如下命令:
:\>pip install cocos2d

9、更多第三方庫

  • Python語言有超過12萬個第三方庫,覆蓋資訊科技幾乎所有領域。即使在每個方向,也會有大量的專業人員開發多個第三方庫來給出具體設計。除了本章所提到的方向外,這裡再列出5個有趣且有用的Python第三方庫,展示Python在工程實踐方面強大的魅力。

PIL

  • PIL庫是Python語言在影象處理方面的重要第三方庫,支援影象儲存、顯示和處理,它能夠處理幾乎所有圖片格式,可以完成對影象的縮放、剪裁、疊加以及向影象新增線條、影象和文字等操作。
  • PIL庫主要可以完成影象歸檔和影象處理兩方面功能需求:

影象歸檔:對影象進行批處理、生成影象預覽等;
           影象處理:影象基本處理、畫素處理、顏色處理等。

  • 安裝PIL庫在Windows的cmd命令列使用如下命令:
:\>pip install pillow

SymPy

  • SymPy是一個支援符號計算的Python第三方庫,它是一個全功能的計算機代數系統。SymPy程式碼簡潔、易於理解,支援符號計算、高精度計算、模式匹配、繪圖、解方程、微積分、組合數學、離散數學、幾何學、概率與統計、物理學等領域計算和應用。
  • 安裝SymPy庫在Windows的cmd命令列使用如下命令:
:\>pip install sympy

NLTK

  • NLTK是一個非常重要的自然語言處理Python第三方庫,它支援多種語言,尤其對中文支援良好。NLTK可以進行語料處理、文字統計、內容理解、情感分析等多種應用,具備非常可靠的應用價值。
  • 安裝NLTK庫在Windows的cmd命令列使用如下命令:
:\>pip install nltk

WeRoBot

  • WeRoBot 是一個微信公眾號開發框架,也稱為的微信機器人框架。WeRoBot可以解析微信伺服器發來的訊息,並將訊息轉換成成Message或者Event型別。
  • 安裝WeRoBot庫在Windows的cmd命令列使用如下命令:
:\>pip install werobot

MyQR

  • MyQR是一個能夠產生基本二維碼、藝術二維碼和動態效果二維碼的Python第三方庫。下圖給出了一些MyQR生成二維碼的例項。

  • 安裝MyQR庫在Windows的cmd命令列使用如下命令:
:\>pip install myqr

本章小結

本章通過8個具體方向30個Python功能庫的簡要介紹縱覽Python語言計算生態的豐富性,希望讀者能夠從Python基礎語法出發,看到更廣闊的程式設計生態,進一步“理解和運用計算生態”,掌握符合資訊時代需要的程式設計能力。

國家計算機等級考試不僅僅是一場考試,更是檢驗能力提升的手段,加油!