2019年你應該知道的十大Python庫。
在本文中,我們將討論Python中的一些頂級庫,開發人員可以使用這些庫來分析、清理和表達數據,並在現有應用程式中實現機器學習。
下面介紹以下10個Python頂級庫
- TensorFlow
- Scikit-Learn
- Numpy
- Keras
- PyTorch
- LightGBM
- Eli5
- SciPy
- Theano
- Pandass:
介紹
Python是最流行和使用最廣泛的程式語言之一,已經取代了業界的許多程式語言。
Python在開發人員中流行的原因有很多。然而,最重要的是它擁有大量可以使用的庫。
Python的簡單性吸引了許多開發人員為機器學習創建新的庫。由於擁有大量的庫,Python在機器學習領域中非常流行。
第一個庫是TensorFlow。
TensorFlow
TensorFlow是什麼?
如果你目前正在用Python進行機器學習,那麼你可能聽說過這個很流行的開源庫TensorFlow。
這個庫是由谷歌與Brain團隊合作開發的。幾乎在每個谷歌應用程式里,TensorFlow機器學習都能被使用。
TensorFlow就像一個計算庫,用於編寫大量張量運算的新算法。因為神經網絡可以很容易地表示為計算圖形,所以可以使用TensorFlow作為張量上的一系列操作來實現它們。另外,張量是表示數據的n維矩陣。
TensorFlow的特點
TensorFlow針對速度進行了優化,它使用XLA等技術進行快速線性代數運算。
1. 響應構造:使用TensorFlow,我們可以很容易地可視化圖形的每個部分,這在使用Numpy或SciKit時不是一個選項。
2. 靈活性高:Tensorflow一個非常重要的特性是,它的可操作性非常靈活,這意味著它具有模塊性,對於你想單獨使用的部分,它都可以提供選項。
3.容易訓練:易於在CPU和GPU上進行分布式計算的訓練。
4. 並行神經網絡訓練:TensorFlow提供了管道,在這個意義上,你可以訓練多個神經網絡和多個gpu,這使得模型在大型系統上非常高效。
5. 大型社區:不用說,如果它是由谷歌開發的,那麼已經有一個龐大的軟體工程師團隊在不斷地改進它的穩定性。
6. 開源:這個機器學習庫最好的地方是它是開源的,只要有網際網路連接,任何人都可以使用。
在哪裡使用TensorFlow ?
你每天都在使用TensorFlow,它間接地使用谷歌語音搜索或谷歌照片等應用程式,這些應用程式都是使用這個庫開發的。
所有在TensorFlow中創建的庫都是用C和c++編寫的。然而,對於Python,它有一個複雜的前端。你的Python代碼被編譯,然後在C和c++構建的TensorFlow分布式執行引擎上執行。
TensorFlow的應用程式的數量是無限的,這就是TensorFlow的美妙之處。
Scikit-Learn
Scikit-learn是什麼?
它是一個與NumPy和SciPy關聯的Python庫。被認為是處理複雜數據的最佳庫之一。
這個庫正在做很多修改與調整,修改交叉驗證特性,能提供多個度量的能力。許多培訓方法,如物流回歸和最近鄰,都得到了一些小小的改進。
Scikit-Learn的特點
- 1. 交叉驗證:多種方法可以檢驗監督模型對不可見數據的準確性。
- 2.無監督學習算法:同樣,有大量的算法提供-從聚類,因素分析,主成分分析到無監督神經網絡。
- 3.特徵提取:用於從圖像和文本(如單詞包)中提取特徵。
Scikit-Learn的使用之處?
它包含許多實現標準機器學習和數據挖掘任務的算法,比如降維、分類、回歸、聚類和模型選擇。
Numpy
Numpy是什麼?
Numpy被認為是Python中最流行的機器學習庫之一。
TensorFlow和其他庫可在內部使用Numpy對張量執行多個操作。數組接口是Numpy最好也是最重要的特性。
Numpy的特點
- 交互性:Numpy交互性強,易於使用
- 數學:使複雜的數學實現非常簡單
- 直觀:使編碼變得容易,掌握概念也很容易
- 大量交互:廣泛使用,因此有很多開源貢獻
Numpy在哪裡使用?
該接口可用於將圖像、聲波和其他二進位原始流表示為n維實數數組。
對這個用於機器學習的庫,了解Numpy對於全堆棧開發人員來說非常重要。
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也是深度學習研究人員的最愛,排名第二。也被大型科學組織,特別是歐洲核子研究中心和美國宇航局的研究人員採用。
PyTorch
PyTorch是什麼?
PyTorch是最大的機器學習庫,它允許開發者利用GPU的加速執行張量計算,創建動態計算圖形,並自動計算梯度。除此之外,PyTorch還提供了豐富的api來解決與神經網絡相關的應用程式問題。
這個機器學習庫是基於Torch的,Torch是一個用C語言實現的開源機器庫,在Lua中有一個包裝器。
這個用Python編寫的機器庫是在2017年引入的,自創建以來,越來越受追捧,吸引了越來越多的機器學習開發人員。
PyTorch的特點
- 混合前端:新的混合前端在eager模式下提供了易用性和靈活性,同時無縫地過渡到graph模式,以便在c++運行時環境中實現速度、優化和功能。
- 分布式訓練:通過利用對集體操作的異步執行的本機支持和可從Python和c++訪問的對等通信,優化研究和生產方面的性能。
- Python優先:PyTorch不是將Python綁定到一個統一的c++框架中。它的構建是為了深入集成到Python中,以便與流行的庫和包(如Cython和Numba)一起使用。
- 庫和工具:活躍的研究人員和開發人員社區構建了一個豐富的工具和庫生態系統,用於擴展PyTorch並支持從計算機視覺到強化學習等領域的開發。
PyTorch在哪裡使用?
PyTorch主要用於自然語言處理等應用程式。
它主要由Facebook的人工智慧研究小組開發,而優步的機率編程「Pyro」軟體就是建立在它之上的。
PyTorch在很多方面都優於TensorFlow,最近其備受關注。
LightGBM
LightGBM是什麼?
Gradient Boosting是最好和最流行的機器學習(ML)庫之一,它幫助開發人員通過使用重新定義基本模型和決策樹來構建新的算法。因此,有一些專門的庫是為快速有效地實現這種方法而設計的。這些庫分別是LightGBM、XGBoost和CatBoost,都是幫助解決問題的能手,並且幾乎可以以類似的方式加以利用。
LightGBM的特點
- 計算速度快,生產效率高。
- 直觀,對用戶友好。
- 和其他許多深度學習庫比起來,能更快上手。
- 當你考慮NaN值和其他規範值時,不會產生錯誤。
LightGBM在哪裡使用?
這個庫提供了高度可伸縮、優化和快速的梯度增強實現,這使得它在機器學習開發人員中很受歡迎。因為大多數機器學習全棧開發人員都是通過使用這些算法在機器學習競賽中獲勝的。
Eli5
Eli5是什麼?
大多數情況下,機器學習模型預測的結果並不準確,而內置Python的Eli5機器學習庫有助於克服這一挑戰。它是可視化和調試所有機器學習模型的組合,並跟蹤算法的所有工作步驟。
Eli5的特點
此外,Eli5還支持其他庫XGBoost、lightning、scikit-learn和sklearn-crfsuite庫。上面提到的所有庫都可以使用它們中的其中一個來執行不同的任務。
Eli5在哪裡使用?
在短時間內需要大量計算的數學應用。
當與其他Python包存在依賴關係時,Eli5起著至關重要的作用。
在各個領域中實現舊的應用程式和更新的方法。
Theano
Theano是什麼?
Theano是一個用於計算多維數組的Python計算框架機器學習庫。Theano的工作原理類似於TensorFlow,但它的效率不如TensorFlow。因為它無法適應生產環境。
此外,Theano還可以用於與TensorFlow類似的分布式或並行環境。
Theano的特點
- 與NumPy緊密集成——能夠在theano編譯的函數中使用完全的NumPy數組。
- 透明使用GPU -執行數據密集型計算比在CPU上快得多。
- 有效符號微分- Theano對一個或多個輸入的函數求導。
- 速度和穩定性優化——即使x非常小,也要得到log(1+x)的正確答案。這只是證明提亞諾穩定性的一個例子。
- 動態C代碼生成——比以前更快地計算表達式,從而大大提高了效率。
- 廣泛的單元測試和自我驗證——在模型中檢測和診斷多種類型的錯誤和歧義。
Theano在哪裡使用?
Theano表達式的實際語法是符號的,這可能會讓習慣正常軟體開發的初學者感到不適應。具體地說,表達式是在抽象意義上定義的,經過編譯,然後用於實際計算。
它是專門為處理用於深度學習的大型神經網絡算法所需的計算類型而設計的。它是最早的同類庫之一(開發始於2007年),被認為是深度學習研究和開發的行業標準。
目前,Theano正被用於多個神經網絡項目中,隨著時間的推移,Theano的受歡迎程度只會越來越高。
Pandas
pandas是什麼?
pandas是Python中的一個機器學習庫,提供高級數據結構和各種各樣的分析工具。這個庫的一個重要特性是能夠使用一兩個命令轉換複雜的數據操作。pandas有許多內置的方法來分組、組合數據、過濾以及時間序列功能。
所有這些都是優秀的速度指標。
pandas的特徵
pandas確保操作數據的整個過程將更加容易。對重新索引、疊代、排序、聚合、連接和可視化等操作的支持是pandas的功能亮點之一。
pandas在哪裡使用?
目前,pandas庫的版本比較少,其中包括數百個新特性、bug修復、增強和API更改。pandas的改進在於它能夠對數據進行分組和排序,為應用的方法選擇最適合的輸出,並為執行定製類型操作提供支持。
在使用pandas時,數據分析是最重要的。但是當與其他庫和工具一起使用時,pandas確保了高功能和良好的靈活性。
以上就是十個2019你應該了解的Python庫了!朋友們,我希望本文能夠幫助你了解並學習Python中可用的庫。