2019 必知的 10 大頂級 python 庫

2021-01-08 雷鋒網

雷鋒網(公眾號:雷鋒網) AI 科技評論按,作為數據科學和機器學習相關的研究和開發人員,大家每天都要用到 python。在本文中,我們將討論一些 python 中的頂級庫,開發人員可以使用這些庫在現有的應用程式中應用、清洗和表示數據,並進行機器學習研究。

我們將討論以下 10 個庫:

TensorFlow

Scikit-Learn

Numpy

Keras

PyTorch

LightGBM

Eli5

SciPy

Theano

Pandas

簡介

python 是最流行和使用最廣泛的程式語言之一,它已經取代了業界許多程式語言。

python 在開發人員中流行的原因有很多。然而,最重要的一點是它有大量的庫供用戶使用。

python 的簡單性吸引了許多開發人員為機器學習創建新的庫。由於有大量的庫,python 在機器學習專家中變得非常流行。

所以,這裡要介紹的第一個庫是 TensorFlow。

1.TensorFlow

什麼是 TensorFlow?

如果你目前正在使用 python 進行機器學習項目,那麼你可能聽說過這一個流行的開源庫,那就是 TensorFlow。

這個庫是由 Google 與 Brain Team 合作開發的,幾乎每一個 Google 的機器學習應用程式都用到了 TensorFlow。

TensorFlow 就像一個計算庫,用於編寫涉及大量 tensor 操作的新算法。由於神經網絡可以很容易地表示為計算圖,因此它們可以使用 TensorFlow 作為 tensor 的一系列操作來實現。另外,tensor 是表示數據的 n 維矩陣。

TensorFlow 的特徵

1.快速響應的結構

使用 TensorFlow,我們可以很容易地可視化圖的每個部分,這在使用 Numpy 或 SciKit 時是做不到的。

2.靈活

TensorFlow 的一個非常重要的特性是,它的操作非常靈活。這意味著它具有模塊性,可以讓你把希望獨立出來的部分分出來

3.容易訓練

對於分布式計算來說,它很容易在 CPU 和 GPU 上訓練。

4.並行神經網絡訓練

TensorFlow 提供了管道流,從這個意義上說,你可以訓練多個神經網絡和多個 GPU,這使得模型在大型系統上非常有效。

5.大型社區

不用說,它是由 Google 開發的,已經有一個龐大的軟體工程師團隊在不斷地改進穩定性。

6.開源

這個機器學習庫最好的一個特點是,它是開源的,任何人只要有連接網際網路就可以使用它。

TensorFlow 被用在哪裡?

你每天都在使用 TensorFlow,你使用的 Google Voice Search 或 Google Photos 等應用程式都是使用這個庫開發的。

在 TensorFlow 創建的所有庫都是用 C 和 C++編寫的,但是,它有一個複雜的前端,是用 python 實現的。你的 python 代碼將被編譯,然後在使用 C 和 C++構建的 TensorFlow 分布式執行引擎上執行。

實際上,TensorFlow 的應用是無限的,這就是它美妙的地方。

2.Scikit-Learn


什麼是 Scikit-Learn?

它是一個與 NumPy 和 SciPy 相關聯的 python 庫。它被認為是處理複雜數據的最佳庫之一。

在這個庫中進行了許多修改。其中一個修改是交叉驗證特性,它提供了使用多個度量的能力。許多訓練方法,如物流回歸和最鄰近算法,都沒有得到什麼改善。

Scikit-Learn 的特性

交叉驗證:有多種方法可以檢查不可見數據上受監督模型的準確性。

無監督學習算法:同樣,在產品中有大量的算法——從聚類、因子分析、主成分分析到無監督神經網絡

特徵提取:用於從圖像和文本中提取特徵(例如一段文字)

Scikit Learn 被用在哪裡?

它包含許多實現標準機器學習和數據挖掘任務的算法,如降維、分類、回歸、聚類和模型選擇。

3.Numpy


什麼是 Numpy?

Numpy 被認為是 python 中最流行的機器學習庫之一。

TensorFlow 和其他庫在內部使用 Numpy 對 tensor 執行多個操作。數組接口是 Numpy 的最佳和最重要的特性。

Numpy 的特性

交互性:Numpy 非常容易理解和使用

數學性:使複雜的數學實現變得非常簡單

直觀:真正使編碼變得容易,掌握概念也很容易

大量接口:廣泛使用,因此有很多開源貢獻者

Numpy 被用在哪裡?

該接口可用於將圖像、聲音和其他二進位原始流表示為 n 維實數數組。

機器學習庫的實現,擁有 Numpy 的知識對於全棧開發人員來說是很重要的。

4.Keras


什麼是 Keras?

Keras 被認為是 python 中最酷的機器學習庫之一。它提供了一種更容易表達神經網絡的機制。Keras 還為編譯模型、處理數據集、圖形可視化等提供了一些最佳實用程序。

在後端,Keras 在內部使用 Theano 或 TensorFlow。也可以使用一些最流行的神經網絡,如 CNTK。當我們將其與其他機器學習庫進行比較時,Keras 的速度相對較慢,因為它使用後端基礎設施創建計算圖,然後利用它執行操作。Keras 的所有模型都很輕簡。

Keras 的特徵

它在 CPU 和 GPU 上都能順利運行。

Keras 支持幾乎所有的神經網絡模型——全連接、卷積、池化、循環、嵌入等。此外,這些模型可以結合起來構建更複雜的模型。

Keras 本質上是模塊化的,具有難以置信的表現力、靈活性和創新性研究的能力。

Keras 是一個完全基於 python 的框架,它使調試和探索變得容易。

Keras 被用在哪裡?

你已經在不斷地與使用 Keras 構建的產品進行交互—Netflix、Uber、Yelp、Instacart、Zocdoc、Square 和許多其他公司都在使用它。它在初創企業中尤其受歡迎,初創企業將深度學習放在其產品的核心位置。

Keras 包含許多常用的神經網絡構建塊的實現,例如層、目標、激活函數、優化器和一系列工具,以使圖像和文本數據的處理更加容易。

此外,它還提供許多預處理的數據集和預訓練的模型,如 MNIST, VGG, Inception, SqueezeNet, ResNet 等。

Keras 也是深度學習研究人員的最愛。大型科學組織,特別是 CERN and NASA 的研究人員尤其偏愛 Keras。

5.PyTorch


什麼是 PyTorch?

PyTorch 是最大的機器學習庫,它允許開發人員以 GPU 的加速度執行 tensor 計算,創建動態計算圖,並自動計算梯度。除此之外,PyTorch 還提供了豐富的 API 來解決與神經網絡相關的應用程式問題。
這個機器學習庫是基於 Torch 的,它是一個用 C 語言實現的開源機器庫,在 Lua 中進行了封裝。

此機器學習庫(python)於 2017 年推出,自其問世以來,該庫越來越受歡迎,並吸引了越來越多的機器學習開發人員。

PyTorch 的特性

一種新的混合前端,提供了易於使用和具有靈活性的 Eager Mode,同時為了速度,無縫過渡到 graph mode,在 C++運行環境中非常實用。

利用本地支持異步執行集體操作和點對點通信(Python 和 C++),優化研究和生產中的性能。

PyTorch 不是一個將 python 綁定到 C++框架的工具。它的構建是為了深入集成到 python 中,以便可以與流行的庫和包(如 Cython 和 Numba)一起使用。

一個由研究人員和開發人員組成的活躍社區已經建立了一個豐富的工具和庫的生態系統,用於擴展 PyTorch 並支持從計算機視覺到強化學習等領域的開發。

PyTorch 被用在哪裡?

PyTorch 主要用於自然語言處理等領域的應用程式。

它主要是由 Facebook 的人工智慧研究小組開發的,Uber 的概率編程軟體「Pyro」就建立在它的基礎之上。

PyTorch 在很多方面都優於 TensorFlow,最近它得到了很多關注。

6.LightGBM


什麼是 LightGBM?

梯度增強是最好的和最流行的機器學習(ML)庫之一,它可以幫助開發人員使用重新定義的基本模型,即決策樹來構建新的算法。因此,有專門的庫可以快速有效地實現這種方法。

這些庫包括 LightGBM, XGBoost 和 CatBoost。這些庫之間存在相互競爭的關係,它們都有助於解決常見問題,可以以幾乎相似的方式使用。

LightGBM 的特點

計算速度快,生產效率高。

直觀,易於使用。

比其他許多深度學習庫更快地訓練。

在遇到 NaN 值和其他規範值時不會產生錯誤。

LightGBM 被用在哪裡?

這個庫提供了高度可擴展、優化和快速的梯度增強實現,這使得它在機器學習開發人員中很受歡迎。大多數機器學習全棧開發人員通過使用這些算法贏得了機器學習競賽。

7.Eli5


什麼是 Eli5?

通常,機器學習模型預測的結果並不準確,python 內置的機器學習庫 Eli5 有助於克服這一挑戰。它是可視化和調試所有機器學習模型的組合,並跟蹤算法的所有工作步驟。

Eli5 的特點

此外,Eli5 還支持其他庫,包括 xgboost、lightning、scikit-learn 和 sklearn-crfsite。所有上述庫中額每一個都可以執行不同的任務。

Eli5 被用在哪裡?

8.SciPy


什麼是 SciPy?

SciPy 是一個面向應用程式開發人員和工程師的機器學習庫。但是,你仍然需要知道 SciPy 庫和 SciPy 堆棧之間的區別。SciPy 庫包含用於優化、線性代數、集成和統計的模塊。

SciPy 的特點

SciPy 庫的主要特點是它是使用 Numpy 開發的,它的數組充分利用了 Numpy。

此外,SciPy 還使用其特定的子模塊提供了所有有效的數值程序,如優化、數值積分和許多其他程序。

所有 SciPy 子模塊中的所有功能都有具體的文檔注釋。

SciPy 被用在哪裡?

SciPy 是一個使用 Numpy 來解數學函數的庫。SciPy 使用 Numpy 數組作為基本數據結構,並附帶用於科學編程中各種常用任務的模塊。

SciPy 可以輕鬆地處理線性代數、積分(微積分)、常微分方程求解和信號處理等任務。

9.Theano


什麼是 Theano?

Theano 是一個用於計算多維數組的計算框架機器學習庫。它的工作原理與 TensorFlow 相似,但不如 TensorFlow 有效,因為它無法適應生產環境。

此外,Theano 也可以在與 TensorFlow 類似的分布式或並行環境中使用。

Theano 的特點

與 Numpy 緊密集成——能夠在無編譯函數中使用完整的 Numpy 數組

高效地使用 GPU——比 CPU 執行數據密集型計算要快得多

有效的符號區分——Theano 為具有一個或多個輸入的函數求導數

速度和穩定性優化——即使在 x 非常小的情況下,也能求出 log(1+x)的正確答案。這只是一個可以證明 Theano 穩定性的例子

動態 C 代碼生成——比以前更快地評估表達式,從而大大提高效率

廣泛的單元測試和自驗證—檢測和診斷模型中多種類型的歧義和錯誤

Theano 被用在哪裡?

Theano 表達式的實際語法是符號化的,這對於習慣於常規軟體開發的初學者來說是很不方便的。具體來說,表達式是以抽象的方式定義、編譯的,然後直接用於計算。

它是專門為處理深度學習使用的大型神經網絡算法所需的計算而設計的。它是同類庫中最早的一個(在 2007 年就開始開發了),被認為是深度學習研究和開發的行業標準。

Theano 目前正被用於多個神經網絡項目中,而且隨著時間的推移,Theano 的普及率也在不斷提高。

20.Pandas


什麼是 Pandas?

Pandas 是 Python 中的一個機器學習庫,它提供高級的數據結構和各種各樣的分析工具。這個庫的一個重要特性是能夠使用一個或兩個命令轉換複雜的數據操作。Pandas 有許多內置的分組、數據組合、過濾和時間序列功能的函數。

Pandas 的特徵

Pandas 確保了整個數據處理的過程更加容易。對諸如重索引、迭代、排序、聚合、連接和可視化等操作的支持是 Pandas 的特色亮點之一。

Pandas 被用在哪裡?

目前,Pandas 庫的版本較少,其中包括數百個新功能、錯誤修復、增強和 API 更改。Pandas 的改進在於它能夠對數據進行分組和排序,為使用的方法選擇最適合的輸出,並為執行自定義類型的操作提供支持。

當使用 Pandas 的時候,數據分析佔了很大的比重。但是,當與其他庫和工具一起使用時,Pandas 確保了高性能和良好的靈活性。

python 中的 10 大頂級 機器學習庫的介紹就到這裡啦,希望本文能夠幫助你開始學習 python 中可用的庫。

Via:https://dzone.com/articles/top-10-python-libraries-you-must-know-in-2019

雷鋒網雷鋒網

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

相關焦點

  • 那些讓人驚豔的Python庫
    每一門技藝都是入門容易熟悉難,越是了解,越是感覺到自己的欠缺,在python博大精深的世界裡,這些蔚為壯觀的python庫,也只能算是滄海一粟。python-prompt-toolkit–一個用於構建強大的交互式命令行程序的庫。aws-cli–Amazon Web Services的通用命令行界面。bashplotlib–在終端中進行基本繪圖。caniusepython3–判斷是哪個項目妨礙你你移植到Python3。
  • 測試~python庫介紹(一) opencv
    從事測試工作已有4年了,期間通過python編寫了很多自動化腳本,接下來的日子和大家分享一下測試工作上常用的python庫,適合常年從事黑盒測試的同學了解一些入門級技巧
  • Python 機器學習庫 Top 10,你值得擁有!
    Python 在眾多開發者中如此受追捧的原因之一便是其擁有大量的與機器學習相關的開源框架以及工具庫,本文介紹了其中最受歡迎的10大Python庫。原文:https://hackernoon.com/top-10-libraries-in-python-to-implement-machine-learning-12602cf5dc61隨著人工智慧技術的發展與普及,Python 超越了許多其他程式語言,成為了機器學習領域中最熱門最常用的程式語言之一。
  • Python第三方庫詞雲wordcloud庫的使用
    收錄於話題 #python 詞雲大家肯定都知道,但是要怎麼做呢,python的wordcloud庫就可以幫我們做到了就幾行代碼就可以實現,因為是第三方庫所以需要用pip
  • python機器學習之使用scikit-learn庫
    引言數據分析由一連串的步驟組成,對於其中預測模型的創建和驗證這一步,我們使用scikit-learn這個功能強大的庫來完成。scikit-learning庫python庫scikit-learn整合了多種機器學習算法。
  • 一個簡單實用的 Python 進度條庫
    本文介紹的這個有著 1.7 萬 Star 的開源庫,就能解決這個煩惱。https://github.com/tqdm/tqdm1、Tqdm 簡介使用 Python Tqdm 進度條庫,可以讓 python 程序執行進度可視化。
  • 良心整理15個超級Python庫,不要錯過!
    它在開發人員中流行的原因有很多,最重要的一點就是它有大量的庫供用戶使用。Python 的易用性、靈活性吸引了許多開發人員為機器學習創建新的庫。有一個庫大家必都會介紹,就是TensorFlow,這裡就不多說了。
  • Python入門指南教程:10天學會使用python做爬蟲!免費領取!
    從去年開始,公眾號鋪天蓋地的python廣告,讓很多行外人也知道了python這個東西,python語言開始變得無所不能,剛畢業的新手用python能做什麼?當然,並不是說python不好。python應用的領域主要是:人工智慧、數據分析、爬蟲。如果你學的是計算機,對於數學和邏輯並不頭疼,那麼可以嘗試用業餘時間來學習一下。
  • 小白學 Python 爬蟲(24):2019 豆瓣電影排行
    :前置準備(三)Docker基礎入門小白學 Python 爬蟲(5):前置準備(四)資料庫基礎小白學 Python 爬蟲(6):前置準備(五)爬蟲框架的安裝小白學 Python 爬蟲(7):HTTP 基礎小白學 Python 爬蟲(8):網頁基礎小白學 Python 爬蟲(9):爬蟲基礎小白學 Python 爬蟲(10
  • python之turtle庫畫會眨眼的小人
    一 簡介turtle是python一個作圖庫,裡面有很多方法。
  • Python實現手繪效果的cute圖表
    而今天為大家介紹的這個簡單易上手的Python第三方繪圖庫:cutecharts,則是擁有手繪風格的線條,十分、非常、很 cute,讓你的圖表具有不一樣的風格。下面就給大家演示下如何用 cutecharts 實現手繪效果的折線圖、條形圖、餅圖。
  • PythonPython100個練手項目
    一鍵生成QQ個人歷史報告    10. 微信公眾號文章爬蟲    11. 新浪微博爬蟲分享(一天可抓取 1300 萬條數據)    12. 新浪微博分布式爬蟲分享    13. python爬蟲教程,帶你從零到一    14.
  • 小白學 Python 爬蟲(21):解析庫 Beautiful Soup(上)
    :前置準備(三)Docker基礎入門小白學 Python 爬蟲(5):前置準備(四)資料庫基礎小白學 Python 爬蟲(6):前置準備(五)爬蟲框架的安裝小白學 Python 爬蟲(7):HTTP 基礎小白學 Python 爬蟲(8):網頁基礎小白學 Python 爬蟲(9):爬蟲基礎小白學 Python 爬蟲(10
  • Python繪製各種簡單優美曲線
    numpy 是一個用python實現的科學計算包,包括一個強大的N維數組對象Array和成熟的函數庫,有用於整合C/C++和Fortran代碼的工具包,提供了實用的線性代數、傅立葉變換和隨機數生成函數等工具,可以理解成Matlab。哪些看似抽象的數學公式,實際上是自己不知道她們的應用場景而已。
  • 10個好用的Python集成開發環境
    Python IDE工具是每個Python工程師必須使用的開發工具,選擇正確的編輯器對Python編程效率的影響是非常大的,因此選擇合適的Python開發工具十分重要,以下是通過長期實踐發掘的好用的Python IDE,它們功能豐富,性能先進,能夠幫助開發人員快速的進行應用程式開發。1.
  • Python和人工智慧有什麼關係?Python 和人工智慧的區別是什麼?
    人工智慧人工智慧是一個大的概念,在人工智慧下有計算機視覺,語音識別,自然語言處理等不同的技術領域,這些技術領域中在Github上又有許多開源的代碼可以直接用來開發,而這些代碼往往需要或者只支持人工智慧是一個大的範疇,包括很多方面的應用,比如機器學習,在機器學習中的回歸算法,它們是通過統計分析所有數據來建立多因式,然後求解式子,而在這個過程中程式語言起到的作用是清洗數據、處理數據、建立關係求解結果的作用,python適用於數據清洗且學習成本低,所以在一定程度上,好一部分人傾向於將python應用於人工智慧應用領域。
  • 數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
    你可以在 Cufflinks 庫的幫助下做到這一點。Cufflinks 將 plotly 的力量與 pandas 的靈活性結合起來,便於繪製。現在讓我們來看看如何安裝這個庫並讓它在 pandas 中工作。
  • 38個常用Python庫:數值計算、可視化、機器學習等8大領域都有了
    作者 | 李明江 張良均 周東平 張尚佳 來源 | 大數據DT Python作為一個設計優秀的程序語言,現在已廣泛應用於各種領域,依靠其強大的第三方類庫,Python在各個領域都能發揮巨大的作用。一、數值計算數值計算是數據挖掘、機器學習的基礎。Python提供多種強大的擴展庫用於數值計算,常用的數值計算庫如下所示。
  • Python 3.9來了!這十個新特性值得關注
    Python 3.9 已於 10 月 5 日發布,新版本的特性,你 get 到了嗎?對於 Python 程式設計師來說,這又是一個令人興奮的時刻。相比於之前的版本,Python 3.9 有哪些值得討論的功能呢?簡而言之,從字典更新 / 合併到添加新的字符串方法,再到 zoneinfo 庫的引入,Python 3.9 添加了許多新特性。此外,該版本還引入了一種穩定、高性能的新型解析器。
  • 20個超棒的Python 庫集合分享
    Plotly (Commits: 2906, Contributors: 48) 官網:https://plot.ly/python/ Plotly 是一個流行的庫,它可以讓你輕鬆構建複雜的圖形。該軟體包適用於交互式 Web 應用程,可實現輪廓圖、三元圖和三維圖等視覺效果。 8.