最常用的幾個python庫--學習引導


核心庫

1、NumPy

當我們用python來處理科學計算任務時,不可避免的要用到來自SciPy  Stack的幫助。SciPy Stack是一個專為python中科學計算而設計的軟件包,注意不要將它與SciPy庫搞混了,后者只是這個軟件包中的一部分。接下來我們一塊來看看這個軟件包。通常這個軟件包是非常大的,里面包含十幾個庫。但是,在這里我們將集中介紹最核心的庫,尤其是最基礎的。

NumPy(表示Numerical  Python)是構建科學計算包最基礎的庫。它為python中n維數組和矩陣操作提供了大量有用的功能。這個庫還支持NumPy數組類型的向量化數學操作,能夠改善計算性能,加快計算速度。

2、SciPy

SciPy是一個工程和科學計算的軟件庫。在這里,你需要再次理解SciPy  Stack和SciPy庫的不同。SciPy包含許多和線性代數,數學優化,積分和統計有關的模塊。SciPy庫的主要功能是構建在NumPy上的,因為它使用了大量NumPy庫的數組。SciPy通過其特有的子模塊提供許多有關數值積分,優化和其它方面的例程,而且其子模塊都有詳細的功能說明。

3、Pandas
Pandas是一個python庫,通過數據標記和數據之間的關系來進行工作,其特點是簡單直觀。它非常適合用於數據分析,可以快速簡單的對數據進行操作,整合以及可視化。

來看下在這個庫里主要的兩種數據結構:

“Series"-一維數據結構

“Data Frames”-二維數據結構

例如,當你想將這兩種數據結構混合形成一個新的DataFrame時,原來的Series會追加在原來的DataFrame后面:

這里列出用Pandas可以很容易做的一些操作:

  • 從DataFrame中可以容易的刪除和添加列

  • 將數據結構轉換成DataFrame對象

  • 將不存在的數據用NaN替代

  • 強大的數據分組功能

 

可視化

4、Matplotlib

Matplotlib是SciPy Stack核心軟件包中的另一個python庫,可以輕松的生成簡單強大的數據可視化圖。在NumPy,SciPy和Pandas的基礎上,Matplotlib是構成python的一個強大的工具包,可以和科學計算工具Matlab,Mathematics等形成強大的競爭力。唯一不足的是這個庫的層次比較低,要想實現高水平的數據可視化必須要付出更多的努力寫更多的代碼。不過,總的來說,它還是值得一試的。
下面列出一些其常用的可視化圖:

  • 直線圖

  • 散點圖

  • 條形圖和直方圖

  • 餅狀圖

  • 莖葉圖

  • 矢量圖

  • 量場圖

  • 頻譜圖

當然,還可以使用Matplotlib來創建標簽,網格,圖例等其它與圖形相關的操作,基本上,所有東西都是可以自定義的。這個庫支持不同的平台,在相應的平台下會充分利用其對應的GUI套件讓結果可視化。此外,不同的IDE(像IPython)都支持Matplotlib的操作。當然還有一些其它的庫使得數據可視化操作更加容易。

5、Seaborn

Seaborn主要用來統計模塊的可視化操作,例如可以用其來顯示熱量圖以反映數據的總體分布。此外,這個模塊是構建在Matplotlib上的,並且高度依賴它。

6、Bokeh

另一個比較好的可視化包是Bokeh,其主要致力於交互式可視。與前面介紹的那些庫不一樣的是,Bokeh並不依賴於Matplotlib,其可以通過現代瀏覽器以腳本(d3.js)的形式來展現最終的圖形。

7、Plotiy

最后,關於可視化python包的是Plotly。它是基於WEB工具箱來構建可視化的,其開放API接口給一些編程語言,當然包括python。在plotly的網站上有一些強大的開箱即用的圖形,在使用plotly的時候最好設置好你的API密匙,這些圖形將會在服務器一端處理並且可以發布到互聯網上,當然也可以不必如此。

 

機器學習

8、SciKit-LearnScikits是SciPy Stack另外的包,專門為圖像處理和機器學習等特定功能而設計的。對於機器學習,其最傑出的包就是scikit-learn,這個包構建在SciPy之上,大量使用了SciPy的數學操作。Scikit-learn向一般的機器學習算法開放了一個簡潔一致的接口,使得機器學習可以簡單的推進到生產系統中。這個庫包含了許多高質量的代碼和好的說明文檔,非常容易使用,事實上,可以說是用python學習機器學習的行業標准了。

 

深度學習-Keras/TensorFlow/Theano

在深度學習方面,python中最突出和最方便的庫就是Keras了,它可以說在TensorFlow和Theano功能之上。接下來,讓我們看一下它們的一些細節。

9、Theano
首先是Theano,它和NumPy類似都定義了多維數組,同時還有一些其它的數學操作與表達式。這個庫是編譯過的,可以高效的運行在各種架構上。它最初是由蒙特利爾大學機器學習小組開發的,主要用於機器學習。
有一點需要指出的是,Theano和NumPy在低層次的操作上有着緊密的結合。而且它還充分優化了GPU和CPU的使用,在數據密集型計算方面速度更快。在效率和穩定性方面的優化使得其可以計算更加精確的結果甚至是非常小的值。例如在計算 log(1+x)時,可以給出x的最小值以及最終的結果。

10、TensorFlow
TensorFlow來自谷歌的開發小組,是一個基於數據流圖計算的開源庫,它強化了機器學習,旨在滿足Google環境對訓練神經網絡的高需求,可以看做是基於神經網絡 機器學習系統DistCelief的繼任者。此外,TensorFlow不僅用在Google科學計算,也可以滿足實際應用的要求。TensorFlow的關鍵特點是其多層節點系統,可以在大型數據集上快速訓練人工神經網絡。這為Google的語音識別和圖像對象識別提供了支持。
11、Keras
最后,讓我們來看下Keras。Keras是用純python寫的高層神經網絡開源庫,具有簡單易懂的高級擴展性。它用Theano和TensorFlow作為其后端,但是微軟現在將CNTK(微軟的認知工具包)集成為新的后端。Keras在設計中的簡約方法旨在通過建立緊湊的系統來進行快速和容易的實驗。
Keras是非常容易上手的,而且一直在其原型上不斷地發展改進,具有高度的模塊化和擴展性。拋開它的輕便,簡潔以及高度模塊化,Keras還是構建復雜模型的有力工具。

 

自然語言處理

12、NLTK
NLTK是Natural  Language  Toolkit的縮寫,顧名思義,它是用來處理符號和統計自然語言處理的任務。NLTK旨在促進NLP及其相關領域(語言學,認知科學人工智能等)的教學與研究,目前正受到廣泛的關注。
NLTK的功能允許很多操作,例如支持文本標記,分類,實體標識,建立語言樹來顯示句子間內的依賴關系等各種常用功能。所有的構件塊都可以為不同的任務構建復雜的研究系統,例如情緒分析,自動總結等。
13、Gensim
Gensim是一個在Python中實現的成熟的開源 向量空間建模和主題建模工具包。它不僅可以用來進行內存處理,更適用於處理大型文本集。而且其通過使用NumPy和SciPy的數據結構極大的提高了執行性能,是非常高效和容易使用的。
Gensim旨在與原始非結構化數字文本一起使用。 其實現了諸如分層Dirichlet進程(HDP),潛在語義分析(LSA)和潛在Dirichlet分配(LDA)之類的算法,以及tf-idf,隨機投影,word2vec和document2vec用於於檢查文本中的重復文本的一組文件(通常稱為語料庫)。這里所有的算法都是無監督的 ,不需要添加任何參數,唯一的輸入就是語料庫。

 

數據挖掘與統計

14、Scrapy
Scrapy是用於從網絡上檢索結構化數據(如聯系人信息或URL)的爬行程序庫(也稱為蜘蛛機器人)。它是開源的,也是用python編寫的,並嚴格按照其名稱所示的方式進行設計。現在它已經在完整的框架中發展,能夠從API中采集數據並作為通用的爬蟲。
這個庫以其著名的設計原則“不要重復代碼”來提示用戶重構那些將要重復使用的通用代碼,因此,這通常用來構建和擴展大型爬蟲。Scrapy的架構緊緊圍繞着Spider類來構建,其包含了爬行器跟蹤的一套指令。
15、Statsmodels
正如你從名字中看出的那樣,Statsmodels是一個python庫,旨在讓用戶通過使用各種統計模型來進行數據挖掘與分析。實際中許多有用的特征都是描述性的,其結果可以通過使用線性回歸模型,廣義線性模型,離散選擇模型,魯棒線性模型,時間序列分析模型來進行統計估量。這個庫還提供了廣泛的繪圖功能,專門用於統計分析和大數據統計數據。

 

安裝這些庫的方法:

下載網址如下:https://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn

只需要下載對應Python版本的庫然后用,pip install xgboost-0.72-cp36-none-win_amd64.whl

即可安裝需要的庫。

 

參考:https://python.freelycode.com/contribution/detail/883

僅用作自學時的學習引導。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM