2017年最流行的15個數據科學Python庫

2021-01-10 機器之心Pro

選自Medium

作者:Igor Bobriakov

機器之心編譯

參與:朱朝陽、吳攀

Python 近幾年在數據科學行業獲得了人們的極大青睞,各種資源也層出不窮。數據科學解決方案公司 ActiveWizards 近日根據他們自己的應用開發經驗,總結了數據科學家和工程師將在 2017 年最常使用的 Python 庫。

核心庫

1)NumPy

地址:http://www.numpy.org

當使用 Python 開始處理科學任務時,不可避免地需要求助 Python 的 SciPy Stack,它是專門為 Python 中的科學計算而設計的軟體的集合(不要與 SciPy 混淆,它只是這個 stack 的一部分,以及圍繞這個 stack 的社區)。這個 stack 相當龐大,其中有十幾個庫,所以我們想聚焦在核心包上(特別是最重要的)。

NumPy(代表 Numerical Python)是構建科學計算 stack 的最基礎的包。它為 Python 中的 n 維數組和矩陣的操作提供了大量有用的功能。該庫還提供了 NumPy 數組類型的數學運算向量化,可以提升性能,從而加快執行速度。

2)SciPy

地址:https://www.scipy.org

SciPy 是一個工程和科學軟體庫。除此以外,你還要了解 SciPy Stack 和 SciPy 庫之間的區別。SciPy 包含線性代數、優化、集成和統計的模塊。SciPy 庫的主要功能建立在 NumPy 的基礎之上,因此它的數組大量使用了 NumPy。它通過其特定的子模塊提供高效的數值例程操作,比如數值積分、優化和許多其他例程。SciPy 的所有子模塊中的函數都有詳細的文檔,這也是一個優勢。

3)Pandas

地址:http://pandas.pydata.org

Pandas 是一個 Python 包,旨在通過「標記(labeled)」和「關係(relational)」數據進行工作,簡單直觀。Pandas 是 data wrangling 的完美工具。它設計用於快速簡單的數據操作、聚合和可視化。庫中有兩個主要的數據結構:

Series:一維

Data Frames:二維

例如,當你要從這兩種類型的結構中接收到一個新的「Dataframe」類型的數據時,你將通過傳遞一個「Series」來將一行添加到「Dataframe」中來接收這樣的 Dataframe:

這裡只是一小撮你可以用 Pandas 做的事情:

輕鬆刪除並添加「Dataframe」中的列將數據結構轉換為「Dataframe」對象處理丟失數據,表示為 NaN(Not a Number)功能強大的分組

可視化

4)Matplotlib

地址:https://matplotlib.org

Matplotlib 是另一個 SciPy Stack 核心軟體包和另一個 Python 庫,專為輕鬆生成簡單而強大的可視化而量身定製。它是一個頂尖的軟體,使得 Python(在 NumPy、SciPy 和 Pandas 的幫助下)成為 MatLab 或 Mathematica 等科學工具的顯著競爭對手。然而,這個庫比較底層,這意味著你需要編寫更多的代碼才能達到高級的可視化效果,通常會比使用更高級工具付出更多努力,但總的來說值得一試。花一點力氣,你就可以做到任何可視化:

線圖散點圖條形圖和直方圖餅狀圖莖圖輪廓圖場圖頻譜圖

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

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

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

5)Seaborn

地址:https://seaborn.pydata.org

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

6)Bokeh

地址:http://bokeh.pydata.org

Bokeh 也是一個很好的可視化庫,其目的是交互式可視化。與之前的庫相反,這個庫獨立於 Matplotlib。正如我們已經提到的那樣,Bokeh 的重點是交互性,它通過現代瀏覽器以數據驅動文檔(d3.js)的風格呈現。

7)Plotly

地址:https://plot.ly

最後談談 Plotly。它是一個基於 Web 的工具箱,用於構建可視化,將 API 呈現給某些程式語言(其中包括 Python)。在 plot.ly 網站上有一些強大的、開箱即用的圖形。為了使用 Plotly,你需要設置你的 API 密鑰。圖形處理會放在伺服器端,並在網際網路上發布,但也有一種方法可以避免這麼做。

機器學習

8)SciKit-Learn

地址:http://scikit-learn.org

Scikits 是 SciPy Stack 的附加軟體包,專為特定功能(如圖像處理和輔助機器學習)而設計。在後者方面,其中最突出的一個是 scikit-learn。該軟體包構建於 SciPy 之上,並大量使用其數學操作。

scikit-learn 有一個簡潔和一致的接口,可利用常見的機器學習算法,讓我們可以簡單地在生產中應用機器學習。該庫結合了質量很好的代碼和良好的文檔,易於使用且有著非常高的性能,是使用 Python 進行機器學習的實際上的行業標準。

深度學習:Keras / TensorFlow / Theano

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

9)Theano

地址:https://github.com/Theano

首先,讓我們談談 Theano。Theano 是一個 Python 包,它定義了與 NumPy 類似的多維數組,以及數學運算和表達式。該庫是經過編譯的,使其在所有架構上能夠高效運行。這個庫最初由蒙特婁大學機器學習組開發,主要是為了滿足機器學習的需求。

要注意的是,Theano 與 NumPy 在底層的操作上緊密集成。該庫還優化了 GPU 和 CPU 的使用,使數據密集型計算的性能更快。

效率和穩定性調整允許更精確的結果,即使是非常小的值也可以,例如,即使 x 很小,log(1+x) 也能得到很好的結果。

10)TensorFlow

地址:https://www.tensorflow.org

TensorFlow 來自 Google 的開發人員,它是用於數據流圖計算的開源庫,專門為機器學習設計。它是為滿足 Google 對訓練神經網絡的高要求而設計的,是基於神經網絡的機器學習系統 DistBelief 的繼任者。然而,TensorFlow 並不是谷歌的科學專用的——它也足以支持許多真實世界的應用。

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

11)Keras

地址:https://keras.io

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

其簡約的設計旨在通過建立緊湊型系統進行快速和容易的實驗。

Keras 極其容易上手,而且可以進行快速的原型設計。它完全使用 Python 編寫的,所以本質上很高層。它是高度模塊化和可擴展的。儘管它簡單易用且面向高層,但 Keras 也非常深度和強大,足以用於嚴肅的建模。

Keras 的一般思想是基於神經網絡的層,然後圍繞層構建一切。數據以張量的形式進行準備,第一層負責輸入張量,最後一層用於輸出。模型構建於兩者之間。

自然語言處理

12)NLTK

地址:http://www.nltk.org

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

NLTK 允許許多操作,例如文本標記、分類和 tokenizing、命名實體識別、建立語語料庫樹(揭示句子間和句子內的依存性)、詞幹提取、語義推理。所有的構建塊都可以為不同的任務構建複雜的研究系統,例如情緒分析、自動摘要。

13)Gensim

地址:http://radimrehurek.com/gensim

這是一個用於 Python 的開源庫,實現了用於向量空間建模和主題建模的工具。這個庫為大文本進行了有效的設計,而不僅僅可以處理內存中內容。其通過廣泛使用 NumPy 數據結構和 SciPy 操作而實現了效率。它既高效又易於使用。

Gensim 的目標是可以應用原始的和非結構化的數字文本。Gensim 實現了諸如分層 Dirichlet 進程(HDP)、潛在語義分析(LSA)和潛在 Dirichlet 分配(LDA)等算法,還有 tf-idf、隨機投影、word2vec 和 document2vec,以便於檢查一組文檔(通常稱為語料庫)中文本的重複模式。所有這些算法是無監督的——不需要任何參數,唯一的輸入是語料庫。

數據挖掘與統計

14)Scrapy

地址:https://scrapy.org

Scrapy 是用於從網絡檢索結構化數據(如聯繫人信息或 URL)的爬蟲程序(也稱為 spider bots)的庫。它是開源的,用 Python 編寫。它最初是為 scraping 設計的,正如其名字所示的那樣,但它現在已經發展成了一個完整的框架,可以從 API 收集數據,也可以用作通用的爬蟲。

該庫在接口設計上遵循著名的 Don』t Repeat Yourself 原則——提醒用戶編寫通用的可復用的代碼,因此可以用來開發和擴展大型爬蟲。

Scrapy 的架構圍繞 Spider 類構建,該類包含了一套爬蟲所遵循的指令。

15)Statsmodels

地址:http://www.statsmodels.org

statsmodels 是一個用於 Python 的庫,正如你可能從名稱中猜出的那樣,其讓用戶能夠通過使用各種統計模型估計方法以及執行統計斷言和分析來進行數據探索。

許多有用的特徵是描述性的,並可通過使用線性回歸模型、廣義線性模型、離散選擇模型、穩健的線性模型、時序分析模型、各種估計器進行統計。

該庫還提供了廣泛的繪圖函數,專門用於統計分析和調整使用大數據統計數據的良好性能。

結論

這個列表中的庫被很多數據科學家和工程師認為是最頂級的,了解和熟悉它們是很有價值的。這裡有這些庫在 GitHub 上活動的詳細統計:

當然,這並不是一份完全詳盡的列表,還有其它很多值得關注的庫、工具包和框架。比如說用於特定任務的 SciKit 包,其中包括用於圖像的 SciKit-Image。如果你也有好想法,不妨與我們分享。

相關焦點

  • 2020年最流行的十個Python庫(上)
    Python是最著名的程式語言之一,由於它最簡單的語法結構而受到開發人員的青睞,更隨著近年來它在人工智慧和機器學習領域中正變得越來越重要。Python之所以強大,還因為它擁有大量的庫,這使得python滲透於任何類型的開發,藉助python可以進行網絡開發,腳本編寫,遊戲開發,數據科學等工作。
  • 一文總結數據科學家常用的Python庫(下)
    用於建模的Python庫我們已經到達了本文最受期待的部分 - 構建模型!這就是我們大多數人首先進入數據科學領域的原因,不是嗎?讓我們通過這三個Python庫探索模型構建。(https://www.analyticsvidhya.com/blog/2015/01/scikit-learn-python-machine-learning-tool/)/* TensorFlow */TensorFlow由Google開發,是一個流行的深度學習庫,可幫助您構建和培訓不同的模型。它是一個開源的端到端平臺。
  • 數據科學的Python軟體包
    巨大的社區支持Python具有廣泛的社區支持之一,在dev op社區上存在各種活躍的論壇,python開發人員在該論壇上發布他們的錯誤,而社區則試圖幫助他們。各種用於數據科學的Python庫到目前為止,我們已經介紹了什麼是數據科學以及為什麼要使用Python,現在讓我們討論可用於數據科學的各種python庫。1.
  • 2019年必知的10大頂級Python庫
    是最流行和使用最廣泛的程式語言之一,它已經取代了業界許多程式語言。python 在開發人員中流行的原因有很多。然而,最重要的一點是它有大量的庫供用戶使用。python 的簡單性吸引了許多開發人員為機器學習創建新的庫。由於有大量的庫,python 在機器學習專家中變得非常流行。所以,這裡要介紹的第一個庫是 TensorFlow。
  • 2017,最受歡迎的 15 大 Python 庫有哪些?
    Igor Bobriakov近年來,Python 在數據科學行業扮演著越來越重要的角色。因此,我根據近來的使用體驗,在本文中列出了對數據科學家、工程師們最有用的那些庫。由於這些庫都開源了,我們從Github上引入了提交數,貢獻者數和其他指標,這可以作為庫流行程度的參考指標。核心庫1.
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    一、核心庫與統計1.NumPynumpy(Numerical Python extensions)是一個第三方的Python包,用於科學計算。其前身是1995年就開始開發的一個用於數組運算的庫。經過了長時間的發展,基本上成了絕大部分Python科學計算的基礎包,當然也包括所有提供Python接口的深度學習框架。
  • 數據工程師需要掌握的 18 個 Python 庫
    作者 | 劉早起早起責編 | 屠敏本文對Python中在數據分析中需要掌握的庫進行了整理,一起來看看吧!所以使用 pip install Twisted-18.9.0-cp37-cp37m-win32.whl 來安裝,然後使用pip install scrapy 來安裝scrapy就可以了數據獲取Beautiful SoupBeautiful Soup也是一個從網站爬取數據的庫,他提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。
  • 掌握了這24個頂級Python庫,你就是大神!
    全文共11815字,預計學習時長24分鐘Python有以下三個特點:· 易用性和靈活性· 全行業高接受度:Python無疑是業界最流行的數據科學語言· 用於數據科學的Python庫的數量優勢事實上,由於Python庫種類很多,要跟上其發展速度非常困難。
  • 這幾個常用的python庫你需要知道
    python可以說是近幾年最火熱、最實用的、最容易上手的工具之一了。功能強大、應用廣泛,可以幫你搜集工作數據,還能幫你下載音樂,電影,於是就掀起了一波學習python的大潮,小編也毫不猶豫的加入了。但是對於向小編一樣的小白來說,剛開始學習還是有些困難的,需要首先了解python的一些基礎知識。所以小編就整理了一些常用的python庫,希望對正在學習python的小夥伴有所幫助。1.MatplotlibMatplotlib是一個用於創建二維圖和圖形的底層庫。
  • 2020年六大機器學習Python庫!
    外頭有許多類型的python庫可用,本文介紹了一些流行的機器學習庫。1. NumPy:NumPy是一種通用的數組處理軟體包。它提供高性能的多維數組對象和用於處理這些數組的工具。它是用於科學計算的基本Python軟體包。NumPy針對Python的CPython參考實現,這是一種非優化的字節碼解釋器。
  • 大數據分析Python NumPy庫使用教程
    NumPy 的前身 Numeric 最早是由 Jim Hugunin 與其它協作者共同開發,2005 年,Travis Oliphant 在 Numeric 中結合了另一個同性質的程序庫 Numarray 的特色,並加入了其它擴展而開發了 NumPy。NumPy 為開放原始碼並且由許多協作者共同維護開發。
  • 數據科學和機器學習的最佳Python庫
    數據科學和機器學習是該時代最需求的技術,這一需求促使每個人都學習不同的庫和軟體包以實現它們。這篇博客文章將重點介紹用於數據科學和機器學習的Python庫。這些是您掌握市場上最被炒作的兩項技能的庫。Python在用於實現機器學習和數據科學的最流行的程式語言中排名第一。讓我們了解為什麼。易於學習: Python使用非常簡單的語法,可用於實現簡單的計算,例如將兩個字符串添加到複雜的過程中,例如構建複雜的ML模型。
  • Python語言中使用pyqtgraph庫實現數據可視化
    背景在Python程式語言中,matplotlib是一種常用的用於數據可視化的繪圖庫,它提供了一套和matlab相似的命令API,開發者可以僅需幾行代碼,便可生成如直方圖,功率譜,條形圖,錯誤圖,散點圖等圖形,適用於交互式繪圖,而且也可以方便地將它作為繪圖控制項嵌入到GUI應用程式中
  • python機器學習:常用庫的介紹及安裝
    如:我要安裝Numpy庫,那麼我就可以打開Anaconda的DOS界面,輸入「pip install numpy"即可下載安裝對應的庫了。這裡需要下載後安裝,所以在安裝新庫的時候要保證網絡是接通的,否則無法下載安裝。
  • Python數據可視化之高速繪圖神器PyQtGraph庫,強烈建議收藏
    比如最經典、使用人數最多的matplotlib庫,其有著十多年的歷史積累,可生成高質量出版級別的圖形,它幾乎已經成了事實上的Python繪圖標準庫。02什麼是PyQtGraph庫先上個2D繪製效果圖:再來個3D繪製效果圖:PyQtGraph是一個純python的圖形和GUI庫,構建於PyQt4/PySide和numpy之上,它主要用於數學/科學/工程應用方面。
  • 用Python進行Web爬取數據
    介紹我們擁有的數據太少,無法建立機器學習模型。我們需要更多數據!如果這句話聽起來很熟悉,那麼你並不孤單!希望獲得更多數據來訓練我們的機器學習模型是一個一直困擾人們的問題。我們無法在數據科學項目中獲得可以直接使用的Excel或.csv文件,對嗎?那麼,如何應對數據匱乏的問題呢?
  • Python成程式語言首選,人工智慧是其最大推力
    除此之外,python還在Web編程和科學計算方面處於領先地位(只是列舉一些其他領域)。總之,python無處不在。現在的程序猿不會點Python編程都拿不出手。Python的採用率正在快速增長,將其作為主要解釋器的開發者比例從 2017 年的 75% 上升到 84%。在行業裡,大家將Python 語言稱為一門「膠水」語言,之所以稱之為是「膠水」語言主要是因為python這門程式語言使用範圍廣泛、應用容易,開發速度較快。
  • Python第三方庫安裝
    Python第三方庫安裝方法包含:-pip安裝-集成環境自帶-文件安裝三種方法1. pip安裝1.1 如何查找第三方庫Python社區可以查找第三方庫的,其頁面如圖所示:pypi.org其中PyPI: Python Package Index是由PSF維護的展示全球Python計算生態的主站如要安裝圖像處理opencv-python庫可以搜索 opencv,但結果如下:
  • 數據分析-numpy庫快速了解
    1.numpy是什麼庫NumPy是一個開源的Python科學計算基礎庫,包含: 一個強大的N維數組對象 ndarray 廣播功能函數 整合C/C++/Fortran代碼的工具 線性代數、傅立葉變換、隨機數生成等功能
  • 「大數據+」助推生命科學、醫學、農業創新發展!ICG-15國家基因庫...
    10月25日至31日,第十五屆國際基因組學大會(ICG-15)在中國武漢隆重召開。作為組學領域最有影響力的年度會議之一,ICG-15共設22個分論壇,來自21個國家的160多位科學家(包括13位中國科學院或工程院院士)通過線上、線下兩大渠道,帶來一場頂級學術盛宴。