應部分朋友後臺留言的要求,再次把去年的Python筆記拿來分享,此筆記為作者於2018年度準備 Pthon國家計算機二級考試的筆記,如有錯誤,請後臺留言指導。
這一講,主要簡單的介紹:第三方庫的獲取和安裝
考綱:更廣泛的 Python 計算生態,只要求了解第三方庫的名稱,不限於以下領域:網絡爬蟲、數據分析、文本處理、數據可視化、用戶圖形界面、機器學習、Web 開發、遊戲開發等
具體從 8 個方向了解 30 個 Python 功能庫:
一、Python網絡爬蟲方向,2個常用庫:requests 和 scrapy:
requests 庫是一個簡潔且簡單的處理 HTTP 請求的第三方庫,它的最大優點是程序編寫過程更接近正常 URL 訪問過程。這個庫建立在 Python 語言的 urllib3 庫基礎上。scrapy 庫是 Python 開發的一個快速的、高層次的 Web 獲取框架。不同於簡單的網絡爬蟲功能,scrapy 框架本身包含了成熟網絡爬蟲系統所應該具有的部分共用功能,scrapy用途廣泛,可以應用於專業爬蟲系統的構建、數據挖掘、網絡監控和自動化測試等領域。二、數據分析方向,3個最常用的生態庫:numpy 、scipy 和 pandas:
numpy 是 Python 的一種開源數值計算擴展第三方庫,用於處理數據類型相同的多維數組(ndarray),簡稱「數組」。這個庫可用來存儲和處理大型矩陣,比 Python 語言提供的列表結構要高效的多。numpy 提供了許多高級的數值編程工具,如:矩陣運算、矢量處理、N維數據變換等。numpy 內部是 C 語言編寫,對外採用 Python 語言進行封裝,因此,在進行數據運算時,基於 numpy 的Python程序可以達到接近 C 語言的處理速度。numpy 也成為 Python 數據分析方向各其他庫的基礎依賴庫,已經成為了科學計算事實上的「標準庫」。scipy 是一款方便、易於使用、專為科學和工程設計的 Python 工具包。在 numpy 庫的基礎上增加了 眾多的數學、科學以及工程計算中常用的庫函數。它包括統計、優化、整合、線性代數、傅立葉變換、信號分析、圖像處理、三、文本處理方向,4個最常用的生態庫:pdfminer、openpyxl、python-docx、beautifulsoup4
pdfminer 是一個可以 從 PDF 文檔中提取各類信息的第三方庫。與其他 PDF 相關的工具不同,它能夠完全獲取並分析 PDF 的文本數據 。Pdfminer 能夠獲取 PDF 中文本的準確位置、字體、行數等信息,能夠將 PDF 文件轉換為 HTML 及文本格式。pdfminer 包含兩個重要的工具:pdf2txt.py 和 dumppdf.py。pdf2txt.py 能夠從 PDF 文件中提取所有文本內容;dumppdf.py 能夠把 PDF 文件內容變成 XML 格式,並進一步提取其中的圖片。openpyxl 是一個處理 Microsoft Excel 文檔的 Python 第三方庫,它支持讀寫Excel 的 xls、xlsx、xlsm、xltx、xltm 等格式文件,並能處理 Excel 文件中 excel 工作表、表單和數據單元。python-docx 是一個 處理 Microsoft Word 文檔的 Python 第三方庫,它支持讀取、查詢以及修改 doc、docx 等格式文件,並能夠對 Word 常見樣式進行編程設置,包括:字符樣式、段落樣式、表格樣式等,進一步可以使用這個庫實現添加和修改文本、圖像、樣式和文檔等功能。beautifulsoup4 庫,也稱為 Beautiful Soup 庫或 bs4 庫,用於解析和處理 HTML 和 XML。需要注意,它不是 BeautifulSoup 庫。它的最大優點是能根據 HTML 和 XML 語法建立解析樹,進而高效解析其中的內容。beautifulsoup4 庫 將數據從 HTML 和 XML 文件中解析出來,它能夠提供一種符合習慣的方法去遍歷搜索和修改解析樹,將專業的 Web 頁面格式解析部分封裝成函數,提供了若干有用且便捷的處理函數。pip install beautifulsoup4四、數據可視化方向,3個最常用的生態庫:matplotlib 、TVTK 、mayavi。
matplotlib 是提供 數據繪圖功能的第三方庫,主要進行二維圖表數據展示,廣泛用於科學計算的數據可視化。使用這個庫可以利用 Python 程序繪製超過100種數據可視化效果,TVTK 庫在標準的 VTK 庫之上用 Traits 庫進行封裝的 Python 第三方庫。視覺工具函數庫(VTK)是一個開源、跨平臺、支持平行處理的 圖形應用函數庫,它是專業可編程的三維可視化工具。TVTK在Python生態系統中被等同於VTK。mayavi 基於 VTK 開發,完全用 Python 編寫,提供了一個更為方便實用的可視化軟體,可以簡潔地嵌入到用戶編寫的 Python 程序中,或者直接使用其面向腳本的 API 快速繪製三維可視化圖形。值得注意的是,mayavi 也被稱為 mayavi2。mayavi 庫在Windows平臺上暫時不能方便的使用 pip 命令安裝,建議使用文件安裝,請下載 mayavi 對應版本文件,然後在本地安裝。五、用戶圖形界面方向,3個高質量的用戶圖形界面Python生態庫:pyqt5 、wxpython 、pygtk
pyqt5 是 Qt5 應用框架的 Python 第三方庫,它有超過620個類和近6000個函數和方法。它是 Python 中最為成熟的商業級 GUI 第三方庫。這個庫是 Python語言當前最好的 GUI 第三方庫,它可以在 Windows、Linux 和 Mac OS X 等作業系統上跨平臺使用。pyqt5 採用「信號-槽」機制將事件和對應的處理程序進行綁定。pyqt5 窗體有很多內置信號,也可以自定義信號。
wxPython 是 Python 語言的一套優秀的 GUI 圖形庫,它是跨平臺 GUI 庫 wxWidgets 的 Python 封裝,可以使 Python 程式設計師能夠輕鬆地創建健壯可靠、功能強大的圖形用戶界面的程序。
pygtk 是基於 GTK+ 的 Python 語言封裝,它提供了各式的可視元素和功能,能夠輕鬆創建具有圖形用戶界面的程序。pygtk 具有跨平臺性,利用它編寫的代碼能夠不加修改地穩定運行在各作業系統中,如 Windows、MacOS、Linux 等。
六、機器學習方向:3個高質量的機器學習框架:Scikit-learn 、TensorFlow 、Theano
Scikit-learn 是一個簡單且高效的 數據挖掘和數據分析工具,它基於NumPy、SciPy 和 matplotlib 構建。Scikit-learn 的基本功能主要包括6個部分:分類,回歸,聚類,數據降維,模型選擇和數據預處理。Scikit-learn 也被稱為 sklearn。
TensorFlow 是谷歌公司基於DistBelief進行研發的第二代人工智慧學習系統,也是用來支撐著名的AlphaGo系統的後臺框架。Tensor(張量)指N維數組,Flow(流)指基於數據流圖的計算,TensorFlow 描述張量從流圖的
一端流動到另一端的計算過程。Theano為執行深度學習中大規模神經網絡算法的運算而設計,擅長處理多維數組。Theano 開發始於2007,可以理解它是一個運算數學表達式的編譯器,並可以高效運行在 GPU 或 CPU 上。Theano 是一個 偏向底層開發的庫,更像一個研究平臺而非單純的深度學習庫。
七、Web開發方向,3個Python第三方生態庫:Django 、Pyramid 、Flask
Django 是 Python 生態中 最流行的開源 Web 應用框架。Django 採用模型、模板和視圖的編寫模式,稱為 MTV 模式。Django 中提供了開發網站經常用到的模塊,Django 的開發理念是 DRY(Don't Repeat Yourself),用於鼓勵快速開發,進而減少程式設計師可以建立一個高性能Web應用所花費的時間和精力,形成一種一站式解決方案。Pyramid 是一個通用、開源的Python Web應用程式開發框架。它主要的目的是讓 Python 開發者更簡單的創建 Web 應用,相比 Django,Pyramid 是一個 相對小巧、快速、靈活的開源 Python Web 框架。Pyramid 仍然面向較大規模的 Web 應用,但它更關注靈活性,開發者可以靈活選擇所使用的資料庫、模板風格、URL 結構等內容。
Flask 是輕量級 Web 應用框架,相比 Django 和 Pyramid,它也被稱為 微框架。使用 Flask 開發 Web 應用十分方便,甚至幾行代碼即可建立一個小型網站。Flask 核心十分簡單,並不直接包含諸如資料庫訪問等的抽象訪問層,而是通過擴展模塊形式來支持。
八、遊戲開發方向,3個Python第三方生態庫:Pygame 、Panda3D 、cocos2d
Pygame 是在 SDL 庫基礎上 進行封裝的、面向遊戲開發入門的 Python 第三方庫,除了製作遊戲外,還用於製作多媒體應用程式。其中,SDL(Simple DirectMedia Layer)是開源、跨平臺的多媒體開發庫,通過 OpenGL 和 Direct3D 底層函數提供對音頻、鍵盤、滑鼠和圖形硬體的簡潔訪問。Pygame 是一個遊戲開發框架,提供了大量與遊戲相關的底層邏輯和功能支持, 非常適合作為入門庫理解並實踐遊戲開發。Panda3D 是一個開源、跨平臺的 3D 渲染和遊戲開發庫,簡單說,它是一個 3D 遊戲引擎,由迪士尼和卡耐基梅隆大學娛樂技術中心共同進行開發。Panda3D 支持 Python 和 C++ 兩種語言,但對 Python 支持更全面。Panda3D 支持很多當代先進遊戲引擎所支持的特性:法線貼圖、光澤貼圖、HDR、卡通渲染和線框渲染等。cocos2d 是一個構建 2D 遊戲和圖形界面交互式應用的框架,它包括 C++、JavaScript、Swift、Python 等多個版本。cocos2d 基於OpenGL 進行圖形渲染,能夠利用 GPU 進行加速。cocos2d 引擎採用樹形結構來管理遊戲對象,一個遊戲劃分為不同場景,一個場景又分為不同層,每個層處理並響應用戶事件。更多第三方庫:這裡再列出5個有趣且有用的Python第三方庫,展示Python在工程實踐方面強大的魅力。
PIL 庫是 Python 語言在圖像處理方面的重要第三方庫,支持圖像存儲、顯示和處理,它能夠處理幾乎所有圖片格式,可以完成對圖像的縮放、剪裁、疊加以及向圖像添加線條、圖像和文字等操作。PIL 庫主要可以完成圖像歸檔和圖像處理兩方面功能需求:圖像歸檔:對圖像進行批處理、生成圖像預覽等;圖像處理:圖像基本處理、像素處理、顏色處理等。SymPy 是一個 支持符號計算的 Python 第三方庫,它是一個全功能的 計算機代數系統。SymPy 代碼簡潔、易於理解,支持符號計算、高精度計算、模式匹配、繪圖、解方程、微積分、組合數學、離散數學、幾何學、概率與統計、物理學等領域計算和應用。NLTK 是一個非常重要的自然語言處理 Python 第三方庫,它支持多種語言, 尤其對中文支持良好。NLTK 可以進行語料處理、文本統計、內容理解、情感分析等多種應用,具備非常可靠的應用價值。WeRoBot 是一個微信公眾號開發框架,也稱為的微信機器人框架。WeRoBot 可以解析微信伺服器發來的消息,並將消息轉換成 Message 或者 Event 類型。MyQR 是一個能夠產生 基本二維碼、藝術二維碼和動態效果二維碼的 Python 第三方庫摘選自《國家計算機二級等級考試二級教程》——Python程序語言設計
-精彩內容推薦-
世界正在偷偷獎勵善良的人
火遍全網的小貓點頭它來了!
25歲 如果我不將就結婚那該多好?