2019年必學的10大寶藏級Python庫

近幾年Python火到沒朋友,而它大火離不開這五點,簡單易學、免費開源、可移植性、面向對象、

豐富的庫

2019年必學的10大寶藏級Python庫

要知道Python標準庫非常龐大,它可以幫助處理各種工作,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作。這也是Python被稱“功能齊全”的主要原因,除了標準庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python圖像庫等等。今天我們就來說說2019 Python程序員必須要學的10個庫。

01

TensorFlow

2019年必學的10大寶藏級Python庫

TensorFlow是一個基於數據流編程(dataflow programming)的符號數學系統,被廣泛應用於各類機器學習(machine learning)算法的編程實現,其前身是谷歌的神經網絡算法庫DistBelief。它擁有多層級結構,可部署於各類服務器、PC終端和網頁並支持GPU和TPU高性能數值計算,被廣泛應用於谷歌內部的產品開發和各領域的科學研究。


TensorFlow由谷歌人工智能團隊谷歌大腦(Google Brain)開發和維護,擁有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在內的多個項目以及各類應用程序接口(Application Programming Interface, API)。自2015年11月9日起,TensorFlow依據阿帕奇授權協議(Apache 2.0 open source license)開放源代碼。


TensorFlow提供Python語言下的四個不同版本:CPU版本(tensorflow)、包含GPU加速的版本(tensorflow-gpu),以及它們的每日編譯版本(tf-nightly、tf-nightly-gpu)。TensorFlow的Python版本支持Ubuntu 16.04、Windows 7、macOS 10.12.6 Sierra、Raspbian 9.0及對應的更高版本,其中macOS版不包含GPU加速。安裝Python版TensorFlow可以使用模塊管理工具pip/pip3或anaconda並在終端直接運行。

2019年必學的10大寶藏級Python庫

02

Numpy

2019年必學的10大寶藏級Python庫

NumPy系統是Python的一種開源的科學計算庫,主要用於科學計算和數據分析,可用來存儲和處理大型矩陣,比Python自身的嵌套列表結構要高效的多。


NumPy 的前身 Numeric 最早是由 Jim Hugunin 與其它協作者共同開發的。2005 年,Travis Oliphant 在 Numeric 中結合了另一個同性質的程序庫 Numarray 的特色,並加入了其它擴展開發了NumPy。

NumPy(Numeric Python)提供了許多高級的數值編程工具,如:矩陣數據類型、矢量處理以及精密的運算庫。專為進行嚴格的數字處理而生。多為很多大型金融公司使用,以及核心的科學計算組織像Lawrence Livermore,NASA用其處理一些本來使用C++,Fortran或Matlab等所做的任務。

03

Keras

2019年必學的10大寶藏級Python庫

Keras是一個由Python編寫的開源人工神經網絡庫,是基於 Python 的深度學習庫,可以作為Tensorflow、Microsoft-CNTK和Theano的高階應用程序接口,進行深度學習模型的設計、調試、評估、應用和可視化。


Keras支持現代人工智能領域的主流算法,包括前饋結構和遞歸結構的神經網絡,也可以通過封裝參與構建統計學習模型。在硬件和開發環境方面,Keras支持多操作系統下的多GPU並行計算,可以根據後臺設置轉化為Tensorflow、Microsoft-CNTK等系統下的組件。Keras的主要開發者是谷歌工程師François Chollet,此外其GitHub項目頁面包含6名主要維護者和超過800名直接貢獻者。


你知道什麼時候可以使用Keras嗎?第一,允許簡單而快速的原型設計;第二,在 CPU 和 GPU 上無縫運行;第三,同時支持卷積神經網絡和循環神經網絡以及兩者的組合。要提醒大家的是Keras 兼容Python 2.7-3.6,但是Python2馬上就要謝幕了,小夥伴們要注意啦!


04

Scikit-Learn

2019年必學的10大寶藏級Python庫

近日Scikit-Learn官方發佈0.22版本,作為深受機器學習翫家青睞的Python庫,包含眾多頂級機器學習算法,像分類、迴歸、聚類、模型選擇、數據預處理等等。


Scikit-learn 是基於Python語言的機器學習工具,一款簡單高效的數據挖掘和數據分析工具,可供大家在各種環境中重複使用,是建立在 NumPy ,SciPy 和 matplotlib 上

開源Python庫。


你需要了解的Scikit-learn特性:交叉驗證、特徵提取、無監督學習算法。Scikit-learn,是基於SciPy針對機器學習領域發展出的一個分支版本,它本身不支持深度學習,不支持GPU加速,需要NumPy和SciPy等其他包的支持。作為Python語言針對機器學習而開發的一個開源框架,它只做機器學習的擴展,只採用經過廣泛驗證的算法。

05

PyTorch

2019年必學的10大寶藏級Python庫

PyTorch是使用GPU和CPU優化的深度學習的Python庫。作為非常有可能改變深度學習領域前景的Python庫,主要用於提供一個具有靈活性的深度學習開發平臺。當然它的工作流程非常接近Python的科學計算庫——numpy,同時PyTorch有易於使用的API,擁有Python的支持、動態計算圖、多gpu支持、自定義數據加載器和簡化的預處理器等優點。PyTorch更有利於研究人員、愛好者、小規模項目等快速搞出原型,因此自2007年問世以來,吸引了越來越多的機器學習開發人員。

06

Eli5

2019年必學的10大寶藏級Python庫

ELI5是一個Python庫,允許使用統一API可視化地調試各種機器學習模型。它內置了對多個ML框架的支持,並提供了一種解釋黑盒模型的方法,有助於調試機器學習分類器並解釋它們的預測,主要是用於處理文本分類的機器學習。


它為以下機器學習框架和包提供支持:

▪ scikit-learn。目前,ELI5允許解釋scikit-learning線性分類器和迴歸量的權重和預測,將決策樹打印為文本或SVG,顯示特徵重要性並解釋決策樹和基於樹的集合的預測,支持Pipeline和FeatureUnion。ELI5通過scikit-learn瞭解文本處理實用程序,並可相應地突出顯示文本數據。它還允許通過撤消散列來調試包含HashingVectorizer的scikit-learn管道。

▪ XGBoost,顯示功能重要性並解釋XGBClassifier,XGBRegressor和xgboost.Booster的預測。

▪ LightGBM,顯示功能重要性並解釋LGBMClassifier和LGBMRegressor的預測。

▪ lightning,解釋閃電分類器和迴歸量的權重和預測。

▪ sklearn-crfsuite。ELI5允許檢查sklearn_crfsuite.CRF模型的權重。


ELI5還實現了幾種檢測黑盒模型的算法:

▪ TextExplainer允許使用LIME算法解釋任何文本分類器的預測。有一些實用程序可以將LIME與非文本數據和任意黑盒分類器一起使用,但此功能尚在實驗中。

▪ Permutation Importance方法可用於計算黑盒估計器的特徵重要性。


07

SciPy

2019年必學的10大寶藏級Python庫

Python在科學計算領域最受歡迎的庫,你知道嗎?numpy、SciPy、matplotlib,現在我們就來說說SciPy,這個建立在numpy基礎上,方便、易於使用且專為科學和工程設計的Python庫,它包括了統計、優化、整合以及線性代數模塊、傅里葉變換、信號和圖像圖例,常微分方差的求解等等。


SciPy (pronounced “Sigh Pie”) is open-source software for mathematics, science, and engineering.


Scipy包含的一些強大功能你需要了解下:最優化、線性代數、積分、插值、擬合、特殊函數、快速傅里葉變換、信號處理、圖像處理、常微分方程求解器等。


SciPy因為可以輕鬆地處理積分、線性代數以及常微分方程求解等,常被用於數學、科學、工程學等領域……


08

LightGBM

2019年必學的10大寶藏級Python庫

去年知乎有近千人圍觀“如何看待開源LightGBM?”要知道它一度被評價為“速度驚人”“支持分佈式”“代碼清晰易懂”“佔用內存小”。那LightGBM到底如何呢?LightGBM是一個高性能、分佈式的基於決策樹算法的梯度提升框架,可用於排序,分類,迴歸以及很多其他的機器學習任務中,具有訓練速度快,效率高;內存使用率更低;更精確;支持並行和GPU學習;能夠處理大規模數據等優點。


LightGBM在很多方面表現的比XGBoost優秀的多:像更快的訓練效率、低內存、更高的準確率、支持並行化學習、可處理大規模數據以及支持使用category特徵,深受機器學習開發人員的歡迎。


09

Theano

2019年必學的10大寶藏級Python庫

Theano是一個可以在CPU或GPU上運行,可以讓你去定義,優化,計算數學表達式,特別是多維數組(numpy.ndarray)的Python庫。作為Python深度學習中的一個關鍵基礎庫,它結合了計算機代數系統(computer algebra system ,CAS) 的特徵和優化編譯器的功能,可以直接用以創建深度學習模型或包裝庫,簡化程序。


Theano的5個特點你需要知道:和Numpy 緊密結合;支持GPU運算,比CPU快140倍;速超快,穩定性佳;能夠動態生成C代碼,計算表達式的速度快到超乎你的想象;支持單元測試。

10

Pandas

2019年必學的10大寶藏級Python庫

Pandas是Python的一個數據分析包,最初由AQR Capital Management於2008年4月開發,並於2009年底開源出來,目前由專注於Python數據包開發的PyData開發team繼續開發和維護,屬於PyData項目的一部分。Pandas最初被作為金融數據分析工具而開發出來,因此,pandas為時間序列分析提供了很好的支持。


作為一個強大的分析結構化數據的工具集,它的使用基礎是Numpy(提供高性能的矩陣運算),用於數據挖掘和數據分析,同時也提供數據清洗功能。


你必須知道的兩大利器:利器一,DataFrame是Pandas中的一個表格型的數據結構,包含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾型等),DataFrame即有行索引也有列索引,可以被看做是由Series組成的字典。利器二,它是一種類似於一維數組的對象,是由一組數據(各種NumPy數據類型)以及一組與之相關的數據標籤(即索引)組成。僅由一組數據也可產生簡單的Series對象。


Pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。


Pandas提供了大量能使我們快速便捷地處理數據的函數和方法。你很快就會發現,它是使Python成為強大而高效的數據分析環境的重要因素之一。


以上10種功能強大的Python庫,希望對你日後的學習和工作有所幫助。


分享到:


相關文章: