學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫

2021-01-11 未來創享

在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。

一、核心庫與統計

1.NumPy

numpy(Numerical Python extensions)是一個第三方的Python包,用於科學計算。其前身是1995年就開始開發的一個用於數組運算的庫。經過了長時間的發展,基本上成了絕大部分Python科學計算的基礎包,當然也包括所有提供Python接口的深度學習框架。NumPy作為一個通用的數組處理包,常用於有效地操作任意記錄的大型多維數組,而不會為小型多維數組犧牲太多的速度。此外也針對數組運算提供大量的數學函數庫。Numpy內部解除了Python的PIL(全局解釋器鎖),運算效率極好,是大量機器學習框架的基礎庫! NumPy構建在Numeric代碼庫上,並添加了numarray引入的特性、擴展的C-API以及創建任意類型數組的能力,這也使得NumPy適合與通用資料庫應用程式進行接口。

numpy庫可以用來存儲和處理大型矩陣,並且在一定程度上彌補了python在運算效率上的不足,正是因為numpy的存在使得python成為數值計算領域的一大利器;

2. SciPy

SciPy和Numpy聯繫很密切,Scipy一般都是操控Numpy數組來進行科學計算,所以可以說是基於Numpy之上了。它通過向用戶提供用於操作和可視化數據的高級命令和類,為交互式Python會話添加了強大的功能。SciPy函數庫在NumPy庫的基礎上增加了眾多的數學、科學以及工程計算中常用的庫函數, 包括數值積分、最優化、統計和一些專用函數。包含了幫助解決線性代數、概率論、積分計算、信號處理、圖像處理、稀疏矩陣等許多其他任務的工具。此外,SciPy 還封裝了許多新的 BLAS 和 LAPACK 函數。

3.Pandas

Pandas最初被作為金融數據分析工具而開發出來,因此,pandas為時間序列分析提供了很好的支持。 Pandas的名稱來自於面板數據(panel data)和python數據分析(data analysis)。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。

pandas的主要功能:具備對齊功能的數據結構DataFrame、Series、集成時間序列功能、提供豐富的數學運算和操作、靈活處理缺失數據。

4. StatsModels

statsmodels是python中用於統計計算的模塊,包含統計模型、統計測試和統計數據挖掘功能。它提供對許多不同統計模型估計的類和函數,並且可以進行統計測試和統計數據的探索。對每一個模型都會生成一個對應的統計結果。統計結果會和現有的統計包進行對比來保證其正確性。

Pandas專注於數據讀取、處理和探索。而StatsModels專注於數據的統計建模分析,使得Python有了一點R語言的味道。StatsModels支持和Pandas的交互是Python數據挖掘中的一對利刃組合。

二、可視化

5. Matplotlib

Matplotlib是Python中最常用的可視化工具之一,可以非常方便地創建海量類型地2D圖表和一些基本的3D圖表。Matplotlib最早是為了可視化癲癇病人的腦皮層電圖相關的信號而研發,因為在函數的設計上參考了MATLAB,所以叫做Matplotlib。Matplotlib首次發表於2007年,在開源和社區的推動下,現在在基於Python的各個科學計算領域都得到了廣泛應用。Matplotlib的原作者John D. Hunter博士是一名神經生物學家,2012年不幸因癌症去世,感謝他創建了這樣一個偉大的庫。Matplotlib非常強大,不過在深度學習中常用的其實只有很基礎的一些功能,藉助它的幫助,您可以構建各種圖表,從直方圖和散點圖到非笛卡爾坐標圖。 此外,許多流行的繪圖庫被設計為與matplotlib一起使用。

6. Seaborn

Seaborn是一種基於matplotlib的Python繪圖工具庫。Seaborn其實是在matplotlib的基礎上進行了更高級的API封裝。它提供了一種高度交互式界面,便於用戶能夠做出各種有吸引力的,信息量大的統計圖表。用Matplotlib最大的困難是其默認的各種參數,而Seaborn則完全避免了這一問題。一般來說,seaborn能滿足數據分析90%的繪圖需求,夠用了,如果需要複雜的自定義圖形,還是要Matplotlib。應該把Seaborn視為matplotlib的補充,而不是替代物

散點圖矩陣

線性回歸

7. Plotly

Plotly 是一個流行的庫,它可以讓你輕鬆構建複雜的圖形。該軟體包適用於交互式 Web 應用程,可實現輪廓圖、三元圖和三維圖等視覺效果。

8. Bokeh

Bokeh是一個專門針對Web瀏覽器的呈現功能的交互式可視化Python庫。Bokeh 庫使用 JavaScript 小部件在瀏覽器中創建交互式和可縮放的可視化。該庫提供了多種圖表集合,樣式可能性(styling possibilities),連結圖、添加小部件和定義回調等形式的交互能力,以及許多更有用的特性。這是Bokeh與其它可視化庫最核心的區別。

Bokeh的優勢:

Bokeh允許你通過簡單的指令就可以快速創建複雜的統計圖,

Bokeh提供到各種媒體,如HTML,Notebook文檔和伺服器的輸出

我們也可以將Bokeh可視化嵌入flask和django程序

Bokeh可以轉換寫在其它庫(如matplotlib, seaborn和ggplot)中的可視化

Bokeh能靈活地將交互式應用、布局和不同樣式選擇用於可視化

Bokeh面臨的挑戰:

與任何即將到來的開源庫一樣,Bokeh正在經歷不斷的變化和發展。所以,你今天寫的代碼可能將來並不能被完全再次使用。

與D3.js相比,Bokeh的可視化選項相對較少。而且 Bokeh 過於依賴 python 的數值計算庫,並非一個純前端的框架,使得它的使用範圍也小於 D3.js。而在純 python 的數值計算領域,也已經有 matplotlib 這種提供了與 Matlab 一模一樣的接口的數據可視化庫,Bokeh 的適用場景也並不多。

但是,它非常適合嵌入 Flask 或者 Django 的程序中,非常好用,速度也很快。

9. Pydot

Pydot 是一個用於生成複雜的定向圖和無向圖的庫。它是用純 Python 編寫的Graphviz 接口。在它的幫助下,可以顯示圖形的結構,這在構建神經網絡和基於決策樹的算法時經常用到。

三、機器學習

10. Scikit-learn

這個基於 NumPy 和 SciPy 的 Python 模塊是處理數據的最佳庫之一。它為許多標準的機器學習和數據挖掘任務提供算法,如聚類、回歸、分類、降維和模型選擇。利用 Data Science School 提高你的技能。

11. XGBoost / LightGBM / CatBoost

梯度增強算法是最流行的機器學習算法之一,它是建立一個不斷改進的基本模型,即決策樹。因此,為了快速、方便地實現這個方法而設計了專門庫。就是說,我們認為 XGBoost、LightGBM 和 CatBoost 值得特別關注。它們都是解決常見問題的競爭者,並且使用方式幾乎相同。這些庫提供了高度優化的、可擴展的、快速的梯度增強實現,這使得它們在數據科學家和 Kaggle 競爭對手中非常流行,因為在這些算法的幫助下贏得了許多比賽。

12. Eli5

通常情況下,機器學習模型預測的結果並不完全清楚,這正是 Eli5 幫助應對的挑戰。它是一個用於可視化和調試機器學習模型並逐步跟蹤算法工作的軟體包,為 scikit-learn、XGBoost、LightGBM、lightning 和 sklearn-crfsuite 庫提供支持,並為每個庫執行不同的任務。

四、深度學習

13. TensorFlow

TensorFlow 是一個流行的深度學習和機器學習框架,由 Google Brain 開發。它提供了使用具有多個數據集的人工神經網絡的能力。在最流行的 TensorFlow應用中有目標識別、語音識別等。在常規的 TensorFlow 上也有不同的 leyer-helper,如 tflearn、tf-slim、skflow 等。

14. PyTorch

PyTorch 是一個大型框架,它允許使用 GPU 加速執行張量計算,創建動態計算圖並自動計算梯度。在此之上,PyTorch 為解決與神經網絡相關的應用程式提供了豐富的 API。該庫基於 Torch,是用 C 實現的開源深度學習庫。

15. Keras

Keras 是一個用於處理神經網絡的高級庫,運行在 TensorFlow、Theano 之上,現在由於新版本的發布,還可以使用 CNTK 和 MxNet 作為後端。它簡化了許多特定的任務,並且大大減少了單調代碼的數量。然而,它可能不適合某些複雜的任務。

五、分布式深度學習

16. Dist-keras / elephas / spark-deep-learning

隨著越來越多的用例需要花費大量的精力和時間,深度學習問題變得越來越重要。然而,使用像 Apache Spark 這樣的分布式計算系統,處理如此多的數據要容易得多,這再次擴展了深入學習的可能性。因此,dist-keras、elephas 和 spark-deep-learning 都在迅速流行和發展,而且很難挑出一個庫,因為它們都是為解決共同的任務而設計的。這些包允許你在 Apache Spark 的幫助下直接訓練基於 Keras 庫的神經網絡。Spark-deep-learning 還提供了使用 Python 神經網絡創建管道的工具。

六、自然語言處理

17. NLTK

NLTK 是一組庫,一個用於自然語言處理的完整平臺。在 NLTK 的幫助下,你可以以各種方式處理和分析文本,對文本進行標記和標記,提取信息等。NLTK 也用於原型設計和建立研究系統。

18. SpaCy

SpaCy 是一個具有優秀示例、API 文檔和演示應用程式的自然語言處理庫。這個庫是用 Cython 語言編寫的,Cython 是 Python 的 C 擴展。它支持近 30 種語言,提供了簡單的深度學習集成,保證了健壯性和高準確率。SpaCy 的另一個重要特性是專為整個文檔處理設計的體系結構,無須將文檔分解成短語。

19. Gensim

Gensim 是一個用於健壯語義分析、主題建模和向量空間建模的 Python 庫,構建在Numpy和Scipy之上。它提供了流行的NLP算法的實現,如 word2vec。儘管 gensim 有自己的 models.wrappers.fasttext實現,但 fasttext 庫也可以用來高效學習詞語表示。

20. Scrapy

Scrapy 是一個用來創建網絡爬蟲,掃描網頁和收集結構化數據的庫。此外,Scrapy 可以從 API 中提取數據。由於該庫的可擴展性和可移植性,使得它用起來非常方便。

結論

本文上述所列就是數據科學領域中常見的 Python 庫。基本上,無論是從入門級選手到專業級數據挖掘、科學計算、圖像處理、人工智慧,Python在這些庫的輔助下都可以勝任。周圍好多的小夥伴都開始學習 Python了,你呢?

因為這個是整理了網上很多內容補充的資料,如果有網友覺得我用了您的內容,請私信我,我在文章底下加上出處好嗎?

相關焦點

  • 資源|用Python和NumPy學習《深度學習》中的線性代數基礎
    本文系巴黎高等師範學院在讀博士 Hadrien Jean 的一篇基礎學習博客,其目的是幫助初學者/高級初學者基於深度學習和機器學習來掌握線性代數的概念。掌握這些技能可以提高你理解和應用各種數據科學算法的能力。
  • python Scrapy在Windows平臺的安裝
    在Windows平臺上安裝scrapy,直接採用pip install scrapy重來沒有成功過,今天剛裝完系統,安裝了python3.6.4,剛好沒有裝scrapy,我就把這個安裝過程記錄下來,分享一下。
  • numpy庫學習總結(基礎知識)
    最近在學習Python中OpenCV庫,學習花了很多時間,發現基礎知識很重要,尤其是numpy這個庫,在進行程序開發時,處理大量類似數組這種數據結構時,它的重要性等同於Python中的列表,像前篇我們寫的《使用Python中OpenCV庫創建一幅圖片的RGB通道圖片》中,對於圖片的處理,大部分時間我們是在跟類似數組這種數據結構在打交道
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    教程大合集,包含python所有就業方向,每套課程均來自市面上主流培訓機構的原版教程,價值都在數百元以上 每套課程均包含:視頻課程+課件+原始碼 重要:建議根據自己工作方向和需求,重點選擇2到3套課程學精,吃透,然後在工作 重要:零基礎小白建議先選擇零基礎全能篇的一套課程學精,然後再根據自 己的需求和規劃選擇學習其他方向課程,學完後一定要多實踐
  • Numpy學習打卡task01
    今天帶來的是Datawhale自主學習Numpy下學習打卡筆記第一部分—輸入輸出(為什麼沒有上,別問,問就是numpy.tan(90))。本文大致介紹了numpy的相關背景知識。本文素材來自網絡及datawhale,糾錯指正、深入探討,咱們評論區見。
  • Python學習第119課——numpy中的broadcasting
    【每天幾分鐘,從零入門python編程的世界!】這節課我們學習numpy中的數據的一個多變的特性--broadcasting,broadcasting的官方的說明比較麻煩,我們這裡把它簡化一下,就把它當做「腦補」的意思。我們舉例來說明。
  • 好程式設計師Python培訓分享numpy簡介
    好程式設計師Python培訓分享numpy簡介:一、numpy簡介:NumPy是一個功能強大的Python庫,主要用於對多維數組執行計算。NumPy這個詞來源於兩個單詞-- Numerical和Python。NumPy提供了大量的庫函數和操作,可以幫助程式設計師輕鬆地進行數值計算。
  • Python學習第114課——numpy中ndarray的四則運算
    【每天幾分鐘,從零入門python編程的世界!】我們為什麼要學習numpy?numpy其實就是number+Python的簡寫,意思就是通過Python對數據進行處理。要對數據進行處理,就少不了最基本的加減乘除等操作。
  • 掌握了這24個頂級Python庫,你就是大神!
    下面一則指南將回答所有關於PyOD的問題:《學習在Python中使用PyOD庫檢測異常值的絕佳教程》NumPy與Pandas一樣,NumPy也是一個非常受歡迎的Python庫。NumPy引入了支持大型多維數組和矩陣的函數,同時還引入了高級數學函數來處理這些數組和矩陣。NumPy是一個開源庫,有多方貢獻者。
  • 大數據分析Python NumPy庫使用教程
    在處理數據時,有一個功能強大的庫可以極大地提高代碼的效率,尤其是在處理大型數據集時:NumPy。 我將在大數據分析Python NumPy庫使用教程中學到什麼? 大數據分析Python NumPy庫使用教程為數據工程師提供有關NumPy的從零開始的培訓。這意味著您不需要具有NumPy的任何經驗,也不會浪費任何時間學習與數據工程工作無關的東西。
  • Python學習第117課——numpy中dot的運用舉例
    【每天幾分鐘,從零入門python編程的世界!】上節我們學習了最基礎的matrix的運算,可能有小夥伴覺得這都要涉及高等數學知識了,確實如果你想做數據科學、做人工智慧,統計學、概率論等數學知識,尤其是算法是繞不過去的坎,但是不要怕!!!
  • python機器學習:常用庫的介紹及安裝
    今天,我們就從零基礎開始學習人工智慧的基礎篇——機器學習。工欲善其事必先利其器,所以,我們首先來看一下,我們要學習這些東西,需要準備些什麼!首先電腦一臺,這是必備的。下面我們來看一下需要安裝些什麼軟體到電腦上!
  • Python學習第113課——numpy中用條件判斷去篩選數組中的元素
    【每天幾分鐘,從零入門python編程的世界!】之前我們學習了如何在numpy中查找數組元素的方法和技巧,現在我們學習如何用條件判斷的方式篩選數組的元素。●numpy中的數組可以直接進行比較直接上代碼:運行結果:我們看到,condition列印出來,它的結構和h的結構一樣。
  • 數據分析-numpy庫快速了解
    1.numpy是什麼庫NumPy是一個開源的Python科學計算基礎庫,包含: 一個強大的N維數組對象 ndarray 廣播功能函數 整合C/C++/Fortran代碼的工具 線性代數、傅立葉變換、隨機數生成等功能
  • 使用Scrapy網絡爬蟲框架小試牛刀
    scrapy 介紹標準介紹Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架,非常出名,非常強悍。所謂的框架就是一個已經被集成了各種功能(高性能異步下載,隊列,分布式,解析,持久化等)的具有很強通用性的項目模板。對於框架的學習,重點是要學習其框架的特性、各個功能的用法即可。
  • Python學習第116課——numpy.dot和矩陣相乘的數學運算
    【每天幾分鐘,從零入門python編程的世界!】關於numpy中數組的相乘,我們學習了對位相乘(用numpy.multiply、或*直接相乘,比如數組a和b的對位相乘就是numpy.multiply(a,b)或a*b)和一維數組的點乘(dot product,也有人叫inner product,比如一維數組a和b的點乘就是a.b)。
  • 吳恩達深度學習筆記(13)-多樣本梯度下降和向量化處理多批次數據
    並且求平均,這會給你全局梯度值,你能夠把它直接應用到梯度下降算法中。所以這裡有很多細節,但讓我們把這些裝進一個具體的算法。同時你需要一起應用的就是邏輯回歸和梯度下降。所以這裡有一些叫做向量化技術,它可以允許你的代碼擺脫這些顯式的for循環。我想在先於深度學習的時代,也就是深度學習興起之前,向量化是很棒的。可以使你有時候加速你的運算,但有時候也未必能夠。但是在深度學習時代向量化,擺脫for循環已經變得相當重要。因為我們越來越多地訓練非常大的數據集,因此你真的需要你的代碼變得非常高效。
  • 學了Python一般可以用來幹什麼呢?
    youtube 世界最大的視頻網站也是Python開發的哦.還有非常出名的instagram 也是用python開發的2,網絡爬蟲爬蟲是屬於運營的比較多的一個場景吧,比如谷歌的爬蟲早期就是用跑Python寫的. 其中有一個庫叫 Requests ,這個庫是一個模擬HTTP請求的一個庫,非常的出名!
  • Numpy基礎,一位Python大神的筆記,看了後我連Matlab都學會了!
    所以本文作為一個記錄&筆記,文章內容大多數取自網絡以&官網快速入門等,希望可以幫助大家快速入門Numpy。如果你有Matlab基礎,那麼你能很快看懂本文!(私信小編007即可獲取Python視頻教程以及各類PDF!)一個慄子
  • 數據工程師需要掌握的 18 個 Python 庫
    我們需要先安裝Twisted,因為直接安裝scrapy的話,安裝會失敗。所以使用 pip install Twisted-18.9.0-cp37-cp37m-win32.whl 來安裝,然後使用pip install scrapy 來安裝scrapy就可以了數據獲取Beautiful SoupBeautiful Soup也是一個從網站爬取數據的庫,他提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。