2017,最受歡迎的 15 大 Python 庫有哪些?

2021-01-11 雷鋒網

雷鋒網(公眾號:雷鋒網)按:本文作者為 ActiveWizards 的數據顧問 Igor Bobriakov,雷鋒網林立宏與 Raey Raey Li 編譯。

Igor Bobriakov

近年來,Python 在數據科學行業扮演著越來越重要的角色。因此,我根據近來的使用體驗,在本文中列出了對數據科學家、工程師們最有用的那些庫。

由於這些庫都開源了,我們從Github上引入了提交數,貢獻者數和其他指標,這可以作為庫流行程度的參考指標。

核心庫1. NumPy (提交數: 15980, 貢獻者數: 522)

當開始處理Python中的科學任務,Python的SciPy Stack肯定可以提供幫助,它是專門為Python中科學計算而設計的軟體集合(不要混淆SciPy庫,它是SciPy Stack的一部分,和SciPy Stack的社區)這樣我們開始來看一下吧。然而,SciPy Stack相當龐大,其中有十幾個庫,我們把焦點放在核心包上(特別是最重要的)。

關於建立科學計算棧,最基本的包是Numpy(全稱為Numerical Python)。它為Python中的n維數組和矩陣的操作提供了大量有用的功能。該庫提供了NumPy數組類型的數學運算向量化,可以改善性能,從而加快執行速度。

2. SciPy (提交數: 17213, 貢獻者數: 489)

SciPy是一個工程和科學軟體庫。雷鋒網再次提醒,你需要理解SciPy Stack和SciPy庫之間的區別。

SciPy包含線性代數,優化,集成和統計的模塊。SciPy庫的主要功能是建立在NumPy上,從而它的數組大量的使用了NumPy的。它通過其特定子模塊提供有效的數值例程,並作為數字積分、優化和其他例程。SciPy的所有子模塊中的功能都有詳細的說明 ——又是一個SciPy非常有幫助的點。

3. Pandas (提交數: 15089, 貢獻者數:762)

Pandas是一個Python包,旨在通過「標記」和「關係」數據進行工作,簡單直觀。Pandas是數據整理的完美工具。它設計用於快速簡單的數據操作,聚合和可視化。

庫中有兩個主要的數據結構:

「系列」(Series),一維


「數據幀」(Data Frames),二維


例如,當您要從這兩種類型的結構中接收到一個新的Dataframe時,通過傳遞一個Series,您將收到一個單獨的行到DataFrame的DF:

 這裡稍微列出了你可以用Pandas做的事情:

輕鬆刪除並添加數據幀(DataFrame)中的列

將數據結構轉換為數據幀(DataFrame)對象

處理丟失的數據,表示為NaN

功能強大的分組

Google趨勢記錄

trends.google.com

GitHub請求歷史記錄

datascience.com/trends 

可視化4.Matplotlib (提交數: 21754, 貢獻者數: 588) 

又一個SciPy Stack核心軟體包以及 Python庫,Matplotlib為輕鬆生成簡單而強大的可視化而量身定製。它是一個頂尖的軟體(在NumPy,SciPy和Pandas的幫助下),它使Python成為像MatLab或Mathematica這樣的科學工具的競爭對手。

然而,這個庫是低層級的,這意味著你需要編寫更多的代碼才能達到高級的可視化效果,而且通常會比使用更多的高級工具付出更多的努力,但總體上這些努力是值得的。

只要付出一點你就可以做任何可視化:

線圖

散點圖

條形圖和直方圖

餅狀圖;

莖圖

輪廓圖

場圖

頻譜圖

還有使用Matplotlib創建標籤,網格,圖例和許多其他格式化實體的功能。基本上,一切都是可定製的。

該庫由不同的平臺支持,並使用不同的GUI套件來描述所得到的可視化。不同的IDE(如IPython)都支持Matplotlib的功能。

還有一些額外的庫可以使可視化變得更加容易。

5. Seaborn (提交數: 1699, 貢獻者數: 71)

Seaborn主要關注統計模型的可視化;這種可視化包括熱圖,這些熱圖(heat map)總結數據但仍描繪整體分布。Seaborn基於Matplotlib,並高度依賴於此。

 

 6. Bokeh (提交數: 15724, 貢獻者數: 223)

另一個很不錯的可視化庫是Bokeh,它針對交互式可視化。與以前的庫相比,它獨立於Matplotlib。正如我們提到的,Bokeh的主要焦點是交互性,它通過現代瀏覽器以數據驅動文檔(d3.js)的風格呈現。

7. Plotly (提交數: 2486, 貢獻者數: 33)

最後,關於Plotly的話。它是一個基於Web用於構建可視化的工具箱,提供API給一些程式語言(Python在內)。在plot.ly網站上有一些強大的、上手即用的圖形。為了使用Plotly,你將需要設置API密鑰。圖形將在伺服器端處理,並發布到網際網路,但有一種方法可以避免。

Google趨勢記錄

trends.google.com

GitHub請求歷史記錄

datascience.com/trends

機器學習8. SciKit-Learn (提交數:21793, 貢獻者數:842)

Scikits是Scikits Stack額外的軟體包,專為像圖像處理和機器學習輔助等特定功能而設計。對於機器學習輔助,scikit-learn是所有軟體包裡最突出的一個。它建立在SciPy之上,並大量利用它的數學運算。

scikit-learn給常見的機器學習算法公開了一個簡潔、一致的接口,可簡單地將機器學習帶入生產系統中。該庫中集成了有質量的代碼和良好的文檔、簡單易用並且十分高效,是使用Python進行機器學習的實際行業標準。

深度學習—— Keras / TensorFlow / Theano

在深度學習方面,Python中最著名和最便的庫之一是Keras,它可以在TensorFlow或Theano框架上運行。讓我們來看一下它們的一些細節。 

9.Theano. (提交數:25870, 貢獻者數:300) 

首先讓我們談談Theano。

Theano是一個Python軟體包,它定義了與NumPy類似的多維數組,以及數學運算和表達式。此庫是被編譯的,可實現在所有架構上的高效運行。最初由蒙特婁大學機器學習組開發,它主要用於滿足機器學習的需求。

值得注意的是,Theano緊密結合了NumPy在低層次上的運算 。另外,該庫還優化了GPU和CPU的使用,使數據密集型的計算平臺性能更佳。

效率和穩定性微調保證了即使在數值很小的情況下,仍有更精確的結果,例如,即使只給出x的最小值,log(1 + x)仍能計算出合理的結果。

10. TensorFlow. (提交數: 16785,貢獻者數: 795)

TensorFlow來自Google的開發人員,它是數據流圖計算的開源庫,為機器學習不斷打磨。它旨在滿足谷歌對訓練神經網絡的高需求,並且是基於神經網絡的機器學習系統DistBelief的繼任者。然而,TensorFlow並不限制於谷歌的科學應用範圍 – 它可以通用於多種多樣的現實應用中。 

TensorFlow的關鍵特徵是它的多層節點系統,可以在大型數據集上快速訓練神經網絡。這為谷歌的語音識別和圖像對象識別提供了支持。

11. Keras. (提交數: 3519,貢獻者數: 428)

最後我們來看看Keras。它是一個用Python編寫的開源的庫,用於在高層的接口上構建神經網絡。它簡單易懂,具有高級可擴展性。Keras使用Theano或TensorFlow作為後端,但微軟現在正努力整合CNTK(微軟的認知工具包)作為新的後端。

設計中的簡約方法旨在通過建立緊湊型系統進行快速、簡便的實驗。

Keras真的容易上手,並在持續完善它的快速原型能力。它完全用Python編寫,可被高度模塊化和擴展。儘管它以易上手、簡單和以高層次為導向,但是Keras足夠有深度並且足夠強大,去支持複雜的模型。

谷歌發展趨勢歷史

trends.google.com

GitHub請求歷史記錄

datascience.com/trends

自然語言處理12. NLTK (提交數: 12449,貢獻者數: 196)

這個庫的名稱「Natural Language Toolkit」,代表自然語言工具包,顧名思義,它用於符號學和統計學自然語言處理(NLP) 的常見任務。 NLTK旨在促進NLP及相關領域(語言學,認知科學人工智慧等)的教學和研究,目前受到重點關注。

NLTK的功能允許很多操作,例如文本標記,分類和標記,實體名稱識別,建立語料庫,可以顯示語言內部和各句子間的依賴性、詞根、語義推理等。所有的構建模塊都可以為不同的任務構建複雜的研究系統,例如情緒分析,自動總結。

13. Gensim (提交數: 2878,貢獻者數: 179)

它是一個用於Python的開源庫,為有向量空間模型和主題模型的工作提供了使用工具。這個庫是為了高效處理大量文本而設計的,所以不僅可以進行內存處理,還可以通過廣泛使用NumPy數據結構和SciPy操作來獲得更高的效率。Gensim高效也易於使用。

Gensim旨在與原始和非結構化的數字文本一起使用。 它實現了諸如hierarchical Dirichlet processes(HDP),潛在語義分析(LSA)和潛在Dirichlet分配(LDA)之類的算法,以及tf-idf,隨機預測,word2vec和document2vec,便於檢查一組文檔中有重複模式的文本 (通常稱為語料庫)。所有的算法均是無監督的,意味著不需要任何參數,唯一的輸入只有語料庫。 

谷歌發展趨勢歷史

trends.google.com

GitHub請求歷史記錄

datascience.com/trends

數據挖掘,統計學14. Scrapy (提交數: 6325,貢獻者數: 243)

Scrapy庫是用於從網絡結構化檢索數據(如聯繫人信息或URL),可以用來設計crawling程序(也稱為蜘蛛bots)。

它是開源的,使用用Python編寫的。最開始只是如它的名字暗示的一樣,只用來做scraping,但是它現在已經在完整的框架中發展,能夠從API採集數據並作為通用的crawlers了。

該庫在界面設計中標榜著「不要重複自己」  它推薦用戶們編寫泛化得到、可被重複使用的通用代碼,從而構建和擴展大型的crawlers。

Scrapy的架構圍繞著Spider class構建,這其中包含了crawler追從的一套指令。

 15. Statsmodels (提交數: 8960,貢獻者數: 119) 

你可能從名字就猜出大概了,statsmodels使用戶能夠通過使用各種統計模型的估算方法進行數據挖掘,並執行統計判斷和分析。

 許多有用的特徵是可被描述的,並通過使用線性回歸模型,廣義線性模型,離散選擇模型,魯棒線性模型,時間序列分析模型,各種估計方法得出統計結果。

這個庫還提供了廣泛的標定功能,專門用於大數據統計中的性能優化工作。 

總結

許多數據科學家和工程師認為這些庫是頂級的,並值得關注,或者需要或多或少了解它們。 以下是每個庫在Github上的詳細統計資料:

當然,這不是完全詳盡的列表,還有許多其他的庫和框架也是值得關注。一個很好的例子是SciKit的不同軟體包各自專注一個特定的領域,如SciKit-Image是用於處理圖像的。

via medium

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 2019年必知的10大頂級Python庫
    python 在開發人員中流行的原因有很多。然而,最重要的一點是它有大量的庫供用戶使用。python 的簡單性吸引了許多開發人員為機器學習創建新的庫。由於有大量的庫,python 在機器學習專家中變得非常流行。所以,這裡要介紹的第一個庫是 TensorFlow。
  • 大數據分析Python NumPy庫使用教程
    在處理數據時,有一個功能強大的庫可以極大地提高代碼的效率,尤其是在處理大型數據集時:NumPy。 我將在大數據分析Python NumPy庫使用教程中學到什麼? 大數據分析Python NumPy庫使用教程為數據工程師提供有關NumPy的從零開始的培訓。這意味著您不需要具有NumPy的任何經驗,也不會浪費任何時間學習與數據工程工作無關的東西。
  • 2017年最流行的15個數據科學Python庫
    數據科學解決方案公司 ActiveWizards 近日根據他們自己的應用開發經驗,總結了數據科學家和工程師將在 2017 年最常使用的 Python 庫。這個 stack 相當龐大,其中有十幾個庫,所以我們想聚焦在核心包上(特別是最重要的)。NumPy(代表 Numerical Python)是構建科學計算 stack 的最基礎的包。它為 Python 中的 n 維數組和矩陣的操作提供了大量有用的功能。該庫還提供了 NumPy 數組類型的數學運算向量化,可以提升性能,從而加快執行速度。
  • 一文總結數據科學家常用的Python庫(下)
    用於建模的Python庫我們已經到達了本文最受期待的部分 - 構建模型!這就是我們大多數人首先進入數據科學領域的原因,不是嗎?讓我們通過這三個Python庫探索模型構建。/)16個OpenCV函數啟動計算機視覺之旅(使用Python代碼)(https://www.analyticsvidhya.com/blog/2019/03/opencv-functions-computer-vision-python/)/* Scikit-image */圖像處理的另一個python庫是Scikit-image。
  • Python第三方庫安裝
    Python第三方庫安裝方法包含:-pip安裝-集成環境自帶-文件安裝三種方法1. pip安裝1.1 如何查找第三方庫Python社區可以查找第三方庫的,其頁面如圖所示:pypi.org其中PyPI: Python Package Index是由PSF維護的展示全球Python計算生態的主站如要安裝圖像處理opencv-python庫可以搜索 opencv,但結果如下:
  • 2020年最流行的十個Python庫(上)
    Python是最著名的程式語言之一,由於它最簡單的語法結構而受到開發人員的青睞,更隨著近年來它在人工智慧和機器學習領域中正變得越來越重要。Python之所以強大,還因為它擁有大量的庫,這使得python滲透於任何類型的開發,藉助python可以進行網絡開發,腳本編寫,遊戲開發,數據科學等工作。
  • 相比於Java,python到底有哪些優勢?
    由於在AI的帶動下python更是異軍突起,撼動了許多老大哥的地位。可唯獨java穩如泰山,不可動搖!自然而然的就會出現python與Java的討論聲。本文的目的在於討論python和java相比到底有哪些優勢,至於缺點暫且不提!
  • python機器學習:常用庫的介紹及安裝
    現在,隨著人工智慧的興起,機器學習越來越被各行業看重,從而使得人工智慧的需求會越來越大。今天,我們就從零基礎開始學習人工智慧的基礎篇——機器學習。工欲善其事必先利其器,所以,我們首先來看一下,我們要學習這些東西,需要準備些什麼!首先電腦一臺,這是必備的。下面我們來看一下需要安裝些什麼軟體到電腦上!
  • 數據工程師需要掌握的 18 個 Python 庫
    數據清洗NumPyNumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。對數組執行數學運算和邏輯運算時,NumPy 是非常有用的。在用 Python 對 n 維數組和矩陣進行運算時,NumPy 提供了大量有用特徵。
  • 2020年六大機器學習Python庫!
    外頭有許多類型的python庫可用,本文介紹了一些流行的機器學習庫。1. NumPy:NumPy是一種通用的數組處理軟體包。它提供高性能的多維數組對象和用於處理這些數組的工具。它是用於科學計算的基本Python軟體包。NumPy針對Python的CPython參考實現,這是一種非優化的字節碼解釋器。
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。
  • 這幾個常用的python庫你需要知道
    python可以說是近幾年最火熱、最實用的、最容易上手的工具之一了。功能強大、應用廣泛,可以幫你搜集工作數據,還能幫你下載音樂,電影,於是就掀起了一波學習python的大潮,小編也毫不猶豫的加入了。但是對於向小編一樣的小白來說,剛開始學習還是有些困難的,需要首先了解python的一些基礎知識。所以小編就整理了一些常用的python庫,希望對正在學習python的小夥伴有所幫助。1.MatplotlibMatplotlib是一個用於創建二維圖和圖形的底層庫。
  • 掌握了這24個頂級Python庫,你就是大神!
    全文共11815字,預計學習時長24分鐘Python有以下三個特點:· 易用性和靈活性· 全行業高接受度:Python無疑是業界最流行的數據科學語言· 用於數據科學的Python庫的數量優勢事實上,由於Python庫種類很多,要跟上其發展速度非常困難。
  • 普通人學Python有意義嗎?學Python有前途嗎?-開課吧Python
    Python是谷歌的兩大開發語言之一,Python是解釋型的動態語言,不需要編譯,靈活性很高,應用範圍很廣。Pythonpython憑藉著第三方庫數量的龐大,其幾乎可以說是萬能的,對於普通人來說,數據表格excel基本上都有需要製作
  • 數據科學的Python軟體包
    Python是使用最廣泛的程式語言之一。儘管標準Python並沒有提供太多功能,但其數量眾多的開放原始碼和第三方庫在開發人員中頗受歡迎。您只需命名域,Python就會為您提供最佳的軟體包和庫。數據科學和機器學習是這個時代的兩項苛刻技術,而Python在這兩個領域的表現要好於優。除Python之外,R是數據科學項目中經常使用的另一種程式語言。
  • Python開發者必知的 11 個 Python GUI 庫,你用過幾個?
    Python開發者必知的 11 個 Python GUI 庫,你用過幾個? 當你使用python編寫應用程式時,你就一定要使用GUI。Python GUI的選擇有很多。目前來說,Python GUI程序庫有30多個跨平臺框架。現在就列出其我認為最好的11個.
  • python基礎教程之python是什麼?
    這是最近10年最常用的10種程式語言的變化圖:python是什麼--python的功能總的來說,這幾種程式語言各有千秋。高級程式語言通常都會提供一個比較完善的基礎代碼庫,讓你能直接調用,比如,針對電子郵件協議的SMTP庫,針對桌面環境的GUI庫,在這些已有的代碼庫的基礎上開發,一個電子郵件客戶端幾天就能開發出來。Python就為我們提供了非常完善的基礎代碼庫,覆蓋了網絡、文件、GUI、資料庫、文本等大量內容,被形象地稱作「內置電池(batteries included)」。
  • 38個常用Python庫:數值計算、可視化、機器學習等8大領域都有了
    作者 | 李明江 張良均 周東平 張尚佳 來源 | 大數據DT Python作為一個設計優秀的程序語言,現在已廣泛應用於各種領域,依靠其強大的第三方類庫,Python在各個領域都能發揮巨大的作用。Matplotlib第一個Python可視化庫,有許多別的程序庫都是建立在其基礎上或者直接調用該庫,可以很方便地得到數據的大致信息,功能非常強大,但也非常複雜。5. Seaborn利用了Matplotlib,用簡潔的代碼來製作好看的圖表。
  • Python語言中使用pyqtgraph庫實現數據可視化
    應該說,matplotlib庫在靜態圖形的表現方面非常強大,但其缺點也比較明顯,如在動態圖形的繪製上,其刷新速度不盡人意。如在實時數據採集場合,要求高速實時繪圖,這時候很難滿足我們的要求,當然,可以通過其它方式如調用其提供的底層API自己編程優化,可以提高其繪圖速度,但難度相對較大。
  • 最好的Python機器學習庫
    在我看來,Python是學習(和實現)機器學習技術最好的語言之一,其原因主要有以下幾點:語言簡單:如今,Python成為新手程式設計師首選語言的主要原因是它擁有簡單的語法和龐大的社區。功能強大:語法簡單並不意味著它功能薄弱。Python同樣也是數據科學家和Web程式設計師最受歡迎的語言之一。