翻譯自 《Python學習手冊(第5版)》python
Python 對操做系統服務的內置接口使其很是適合編寫可移植、可維護的系統管理工具和實用程序 utilities (有時稱爲 shell 工具)。Python 程序能夠搜索文件和目錄樹、啓動其餘程序、使用進程和線程進行並行處理等等。c++
Python 的標準庫帶有 POSIX 綁定和對全部經常使用 OS 工具的支持: 環境變量、文件、套接字、管道、進程、多線程、正則表達式模式匹配、命令行參數、標準流接口、shell 命令發射器、文件名擴展、zip 文件實用程序、XML 和 JSON 分析器、CSV 文件處理程序等。此外, Python 的大部分系統接口設計爲可移植; 例如, 複製目錄樹的腳本一般在全部主要 Python 平臺上運行不變。EVE Online 採用 Stackless Python 的實現並提供了針對多處理需求的高級解決方案。git
Python 的簡潔和快速週轉也使它成爲桌面上圖形用戶界面編程的好匹配。python 附帶了一個標準面向對象的接口, 該 API 稱爲 tkinter (tkinter 2.X), 它容許 Python 程序實現具備本地外觀和感受的便攜式 gui。Python/tkinter gui 在 Windows、X Windows ( Unix 和 Linux ) 和 Mac os (經典版和 OS x) 上運行不變。一個免費的擴展包, PMW, 添加高級小部件到 tkinter 工具包。此外, 基於 c++ 庫的 wxPython GUI API 提供了一種在 Python 中構建便攜式 gui 的替代工具包。程序員
更高級別的工具包 (如達博) 創建在基本 api (如 wxPython 和 tkinter) 之上。使用適當的庫, 您還能夠在 Python 中的其餘工具包中使用 GUI 支持, 例如 Qt 與 PyQt、具備 PyGTK 的 GTK、帶有 PyWin32 的 MFC、. NET 和 IronPython, 以及使用 Jython (2 章中描述的 Java 版本的 Python) 或 JPype 進行擺動。對於在 web 瀏覽器中運行或具備簡單接口要求的應用程序, Jython 和 Python web 框架和服務器端 CGI 腳本提供其餘用戶界面選項。github
python 附帶了標準的 Internet 模塊, 容許 python 程序在客戶端和服務器模式下執行各類網絡任務。腳本能夠經過套接字進行通訊;提取發送到服務器端 CGI 腳本的表單信息;經過 FTP 傳輸文件;分析和生成 XML 和 JSON 文檔;發送、接收、撰寫和分析郵件; 按 URL 獲取網頁;解析獲取的網頁的 HTML;經過 XML (RPC、SOAP 和 Telnet) 進行通訊等等。Python 的庫使這些任務很是簡單。web
不只如此, Web 上還提供了大量的第三方工具, 用於 Python 中的 Internet 編程。例如, HTMLGen 系統生成基於 Python 類的描述的 HTML 文件, mod_python 包在 Apache web 服務器中高效運行 Python, 並支持服務器端模板化及其 Python 服務器頁面, 以及 Jython 系統提供無縫 Python/Java 集成, 並支持在客戶端上運行的服務器端小程序的編碼。正則表達式
此外, 對於 python, 如 Django, TurboGears, web2py, Pylons, Zope 和 WebWare, 完整的 web 開發框架包支持使用 python 快速構建全功能和生產質量的網站。其中許多功能包括對象關係映射器、模型/視圖/控制器體系結構、服務器端腳本和模板以及 AJAX 支持, 以提供完整的企業級 web 開發解決方案。算法
最近, Python 已擴展到豐富的 Internet 應用程序 (RIAs), 其中包括 IronPython 中的 Silverlight 和 pyjs (也稱爲睡衣 ( pyjamas)) 及其 Python 到 JavaScript 編譯器、AJAX 框架和小部件集。Python 還已遷移到雲計算、應用引擎以及前面的數據庫部分中描述的其餘內容。在 Web 潛在客戶的位置, Python 很快就會跟隨。shell
Python 在 c 和 c++ 系統中擴展和嵌入的能力使其成爲一種靈活的膠水語言, 用於編寫其餘系統和組件的行爲腳本。例如, 將 C 庫集成到 python 使 python 可以測試和啓動庫的組件, 並在產品中嵌入 Python, 無需從新編譯整個產品 (或根本不發運其源代碼) 便可對現場自定義進行編碼。數據庫
諸如 SWIG 和 SIP 代碼生成器之類的工具能夠自動完成將編譯的組件連接到 python 以便在腳本中使用所需的大部分工做, 而 Cython 系統容許程序員混合 python 和相似 C 的代碼。更大的框架, 如 Python 在 Windows 上的 COM 支持、基於 Jython Java 的實現和 IronPython。基於 .NET 的實現提供了腳本組件的其餘方法。例如, 在 Windows 上, Python 腳本可使用框架來編寫 Word 和 Excel 的腳本、訪問 Silverlight 等。
對於傳統的數據庫需求, 對於全部經常使用的關係數據庫系統 (Sybase、Oracle、Informix、ODBC、MySQL、PostgreSQL、SQLite 等) 都有 Python 接口。python 世界還定義了一個可移植數據庫 API, 用於從 Python 腳本訪問 SQL 數據庫系統, 在各類基礎數據庫系統上看起來相同。例如, 因爲供應商接口實現了便攜式 API, 編寫用於與免費 MySQL 系統一塊兒工做的腳本在其餘系統 (如 Oracle) 上的工做基本不變;您一般須要作的就是更換基礎供應商界面。自2.5 以來, 進程內 SQLite 嵌入式 SQL 數據庫引擎是 Python 自己的標準部分, 支持原型設計和基本程序存儲需求。
在非 SQL 部分中, Python 的標準 pickle
模塊提供了一個簡單的對象持久化系統-它容許程序輕鬆地將整個 Python 對象保存和還原到文件和相似文件的對象。在 Web 上, 您還能夠找到名爲 ZODB 和 Durus 的第三方開源系統, 爲 Python 腳本提供完整的面向對象的數據庫系統;其餘, 如 SQLObject 和 SQLAlchemy, 實現對象關係映射器 (ORMs), 將 Python 的類模型移植到關係表上;PyMongo 是 MongoDB 的一個接口, 它是一種高性能、非 SQL、開放源碼的 JSON 樣式文檔數據庫, 它將數據存儲在結構很是相似於 python 本身的列表和字典中, 其文本可使用 python 本身的標準庫 json 模塊進行分析和建立。
此外, 其餘系統還提供了更專業的方法來存儲數據, 包括在 Google App 引擎中使用數據存儲, 經過 Python 類來建模和提供普遍的可擴展性, 以及其餘新興雲存儲選項, 如 Azure、PiCloud、OpenStack 和 Stackato。
對於 python 程序, 用 python 和 C 編寫的組件看起來是同樣的。所以, 最初能夠在 Python 中原型系統, 而後將所選組件移動到編譯語言 (如 c 或 c++) 以進行傳遞。與某些原型工具不一樣, Python 在原型凝固後不須要徹底重寫。不須要 C + + 等語言效率的系統部分能夠保持在 Python 中編碼, 便於維護和使用。
python 在數字編程中也被大量使用, 這是一種傳統上不被認爲是腳本語言範圍的領域, 但已經發展成爲 python 最引人注目的用例之一。這裏突出的是, 前面提到的 Python 的 NumPy 高性能數字編程擴展包括諸如數組對象的高級工具、標準數學庫的接口等等。經過將 python 與以編譯語言編碼的數字例程集成爲速度, NumPy 將 python 轉換爲複雜而易於使用的數字編程工具, 一般能夠替換傳統編譯語言 (如 FORTRAN 或 C++) 編寫的現有代碼。
Python 支持動畫、3D 可視化、並行處理等其餘數字工具。例如, 流行的 SciPy 和 ScientificPython 擴展提供了更多的科學編程工具庫, 並將 NumPy 做爲核心組件使用。Python 的 PyPy 實現也在數字領域中獲得了牽引, 部分緣由是此域中常見的排序的大量算法代碼能夠在 PyPy 中快速運行, 一般速度快10X 到 100X。
Python 一般應用在更多的域中, 而不是能夠在這裏覆蓋。例如, 您將找到容許您使用 Python 執行如下操做的工具:
json
and csv
modulesScikit-learn 是基於 Scipy 爲機器學習建造的的一個 Python 模塊,他的特點就是多樣化的分類,迴歸和聚類的算法包括支持向量機,邏輯迴歸,樸素貝葉斯分類器,隨機森林,Gradient Boosting,聚類算法和 DBSCAN。並且也設計出了 Python numerical 和 scientific libraries Numpy and Scipy
Keras 是基於 Theano, Tensorflow, CNTK 的一個深度學習框架,它的設計參考了 Torch,用 Python 語言編寫,是一個高度模塊化的神經網絡庫,支持 GPU 和 CPU。
不僅是一個美味的意大利菜,也是一個和 Keras 有着類似功能的深度學習庫,但其在設計上與它們有些不一樣。
Pylearn 是一個讓機器學習研究簡單化的基於 Theano 的庫程序。它把深度學習和人工智能研究許多經常使用的模型以及訓練算法封裝成一個單一的實驗包,如隨機梯度降低。
NuPIC 是一個以 HTM 學習算法爲工具的機器智能平臺。HTM 是皮層的精確計算方法。HTM 的核心是基於時間的持續學習算法和儲存和撤銷的時空模式。NuPIC 適合於各類各樣的問題,尤爲是檢測異常和預測的流數據來源。
Nilearn 是一個可以快速統計學習神經影像數據的 Python 模塊。它利用 Python 語言中的 scikit-learn 工具箱和一些進行預測建模,分類,解碼,連通性分析的應用程序來進行多元的統計。
Pybrain 是基於 Python 語言強化學習,人工智能,神經網絡庫的簡稱。 它的目標是提供靈活、容易使用而且強大的機器學習算法和進行各類各樣的預約義的環境中測試來比較你的算法。
Pattern 是 Python 語言下的一個網絡挖掘模塊。它爲數據挖掘,天然語言處理,網絡分析和機器學習提供工具。它支持向量空間模型、聚類、支持向量機和感知機而且用KNN分類法進行分類。
Fuel 爲你的機器學習模型提供數據。他有一個共享如MNIST, CIFAR-10 (圖片數據集), Google's One Billion Words (文字)這類數據集的接口。你使用他來經過不少種的方式來替代本身的數據。
Bob 是一個免費的信號處理和機器學習的工具。它的工具箱是用 Python 和 C++ 語言共同編寫的,它的設計目的是變得更加高效而且減小開發時間,它是由處理圖像工具,音頻和視頻處理、機器學習和模式識別的大量軟件包構成的。
Skdata 是機器學習和統計的數據集的庫程序。這個模塊對於玩具問題,流行的計算機視覺和天然語言的數據集提供標準的Python語言的使用。
MILK 是Python語言下的機器學習工具包。它主要是在不少可獲得的分類好比SVMS,K-NN,隨機森林,決策樹中使用監督分類法。 它還執行特徵選擇。 這些分類器在許多方面相結合,能夠造成不一樣的例如無監督學習、密切關係金傳播和由MILK支持的K-means聚類等分類系統。
IEPY 是一個專一於關係抽取的開源性信息抽取工具。它主要針對的是須要對大型數據集進行信息提取的用戶和想要嘗試新的算法的科學家。
Quepy 是經過改變天然語言問題從而在數據庫查詢語言中進行查詢的一個 Python 框架。他能夠簡單的被定義爲在天然語言和數據庫查詢中不一樣類型的問題。因此,你不用編碼就能夠創建你本身的一個用天然語言進入你的數據庫的系統。
如今 Quepy 提供對於 Sparql 和 MQL 查詢語言的支持。而且計劃將它延伸到其餘的數據庫查詢語言。
Hebel 是在 Python 語言中對於神經網絡的深度學習的一個庫程序,它使用的是經過 PyCUDA 來進行 GPU 和 CUDA 的加速。它是最重要的神經網絡模型的類型的工具並且能提供一些不一樣的活動函數的激活功能,例如動力,涅斯捷羅夫動力,信號丟失和中止法。
mlxtend 它是一個由有用的工具和平常數據科學任務的擴展組成的一個庫程序。
nolearn 容納了大量能對你完成機器學習任務有幫助的實用程序模塊。其中大量的模塊和 scikit-learn 一塊兒工做,其它的一般更有用。
Ramp 是一個在 Python 語言下制定機器學習中加快原型設計的解決方案的庫程序。他是一個輕型的 pandas-based 機器學習中可插入的框架,它現存的Python語言下的機器學習和統計工具(好比scikit-learn,rpy2 等)Ramp 提供了一個簡單的聲明性語法探索功能從而可以快速有效地實施算法和轉換。
Feature Forge一系列工具經過與 scikit-learn 兼容的 API,來建立和測試機器學習功能。
這個庫程序提供了一組工具,它會讓你在許多機器學習程序使用中很受用。當你使用 scikit-learn 這個工具時,你會感受到受到了很大的幫助。(雖然這隻能在你有不一樣的算法時起做用。)
REP 是以一種和諧、可再生的方式爲指揮數據移動驅動所提供的一種環境。
它有一個統一的分類器包裝來提供各類各樣的操做,例如 TMVA, Sklearn, XGBoost, uBoost等等。而且它能夠在一個羣體以平行的方式訓練分類器。同時它也提供了一個交互式的情節。
machine-learning-sample 用亞馬遜的機器學習建造的簡單軟件收集。
Python-ELM 這是一個在 Python 語言下基於 scikit-learn 的極端學習機器的實現。
主題模型 python實現