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

2020-12-18 未來創享

在網絡上看到幾位前輩寫了關於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培訓分享numpy簡介
    好程式設計師Python培訓分享numpy簡介:一、numpy簡介:NumPy是一個功能強大的Python庫,主要用於對多維數組執行計算。NumPy這個詞來源於兩個單詞-- Numerical和Python。NumPy提供了大量的庫函數和操作,可以幫助程式設計師輕鬆地進行數值計算。
  • Python3 量化分析筆記從小白到破產-學習路線規劃
    作為小白,我給自己規劃的路徑,是先學習基礎的python語言知識,再然後分別去學習收集數據專用的包、處理數據專用的包、分析數據專用的包,和可視化專用的包,最後練習一些小案例。包:numpy、pandas~再次強調,我們的目的不是成為一個python程式設計師,而是要把python當作一個工具。
  • Python學習第117課——numpy中dot的運用舉例
    【每天幾分鐘,從零入門python編程的世界!】上節我們學習了最基礎的matrix的運算,可能有小夥伴覺得這都要涉及高等數學知識了,確實如果你想做數據科學、做人工智慧,統計學、概率論等數學知識,尤其是算法是繞不過去的坎,但是不要怕!!!
  • Python自動化辦公知識點整理匯總
    自動化辦公無非是excel、ppt、word、郵件、文件處理、數據分析處理、爬蟲這些,這次就來理一理python自動化辦公的那些知識點。數據處理和分析我就是做數據分析工作的,基本也是python作為主要工具,所以這一塊毋庸置疑是python自動化辦公最有價值的部分。數據處理的庫主要有:pandas、numpy、matplotlib、sklearn...
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    教程大合集,包含python所有就業方向,每套課程均來自市面上主流培訓機構的原版教程,價值都在數百元以上 每套課程均包含:視頻課程+課件+原始碼 重要:建議根據自己工作方向和需求,重點選擇2到3套課程學精,吃透,然後在工作 重要:零基礎小白建議先選擇零基礎全能篇的一套課程學精,然後再根據自 己的需求和規劃選擇學習其他方向課程,學完後一定要多實踐
  • 掌握了這24個頂級Python庫,你就是大神!
    因此,本文介紹了24種涵蓋端到端數據科學生命周期的Python庫。文中提及了用於數據清理、數據操作、可視化、構建模型甚至模型部署(以及其他用途)的庫。這是一個相當全面的列表,有助於你使用Python開啟數據科學之旅。
  • Python學習第116課——numpy.dot和矩陣相乘的數學運算
    【每天幾分鐘,從零入門python編程的世界!】關於numpy中數組的相乘,我們學習了對位相乘(用numpy.multiply、或*直接相乘,比如數組a和b的對位相乘就是numpy.multiply(a,b)或a*b)和一維數組的點乘(dot product,也有人叫inner product,比如一維數組a和b的點乘就是a.b)。
  • 最受歡迎 Top 12 Python 開源框架,你都用過嗎?
    如果你正在學習python,那麼這12個開源框架,千萬別錯過,這些框架包括事件I/O,OLAP,Web開發,高性能網絡通信,測試,爬蟲等。雖說不上是全都有,但也足夠滿足你了。已有部分應用程式接口可以利用並附帶參考書目,內容從開發環境接口到連接實現。另外,它還配備了一個WSGI伺服器,其他WSGI Python應用程式(和框架)也可以使用。在開源和Apache 2.0許可下可用。
  • Python最佳經典學習路線
    如何學習Python python語言基礎:(帶你熟悉python語言的特性,學會使用python開發環境,使用python開發一些簡單的案例) (1)Python3入門,數據類型,字符串 (2)判斷/循環語句,函數,
  • 零基礎入門學習python
    零基礎入門可以學習python嗎?書聲琅琅Python培訓徐老師介紹,很多的朋友諮詢徐老師,想知道如果自己是零基礎的話,到底要如何快速學習Python,由於Python的作用非常大,我們知道PYTHON有全棧課,PYTHON有人工智慧課,今天我們來介紹一下小白如何最快學會寫簡單Python爬蟲。
  • SQL、Python是什麼?需要多久去學習
    程式語言就跟學習一門外語一樣,學習周期是比較長的,而且需要學習的內容也比較多,但是我們要知道的是,作為數據分析,我們只要關注python關於數據處理的過程就夠了,比如做用戶行為路徑分析的時候,這個時候就需要的分析數據是海量的,Excel打不開,SQL跑不動,這個時候就需要Python閃亮登場。python學習主要包括三個部分。
  • Python學習好書推薦
    現在學習Python的人越來越多,無論是自學還是跟老師學習,書是必不可少的,在這裡,向大家推薦幾本適合初學者學習的書籍,希望對大家有幫助 !第三本:用Python寫網絡爬蟲 [澳]理察 勞森(Richard Lawson) 這本書介紹了如何寫網絡爬蟲,書不厚,但介紹的點多,雖不詳細,但對後續深入學習有幫助。
  • python 爬蟲學習路線:從入門到進階
    在目標的驅動下,你的學習才會更加精準和高效。那些所有你認為必須的前置知識,都是可以在完成目標的過程中學到的。這裡給你一條平滑的、快速入門的學習路徑。本文依舊需要有一些python基礎,至少要求掌握python語法。
  • 對比了 18000 個 Python 項目,這 TOP45 值得學習!
    個推薦,4.6 / 5 星]連結:https://www.udemy.com/rest-api-flask-and-python/算法交易:用於財務分析和算法交易的 Python,主要學習包括 numpy,pandas,matplotlib,quantopian,finance [8,077 個推薦,4.6 / 5 星]連結:https
  • Python新手學習網絡爬蟲要做什麼?
    爬蟲,被稱為網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者,是一種按照一定的規則,自動地抓取全球資訊網信息的程序或者腳本,主要用於搜尋引擎,它將一個網站的所有內容與連結進行閱讀,並建立相關的全文索引到資料庫中,然後跳到另一個網站。
  • 深度學習教程2,Anaconda安裝和使用命令
    (小玲說人工智慧----深度學習吧https://sdxx8.com)我們學習AI,最好的語言目前是python,而,學習AI要安裝各種各樣的程序庫,如果都手動安裝管理,將會非常麻煩,所以有個組織,開發了Anaconda的軟體,準確來說,這個軟體就是一個
  • 如何學習Python【入門篇】?
    只有這樣才能朝著目標持續前進,少走彎路,從學習中得到不斷的提升,享受python學習計劃的過程。 雖然目前的程式語言有很多,但是基礎語法上的概念,本質上都是相通的。可以做到一通百通。所以沒有必要為了學哪門語言糾結太多。
  • Python學習第93課-導入csv數據並繪製折線圖
    【每天幾分鐘,從零入門python編程的世界!】之前我們畫各種圖,都是把需要分析的數據,手寫輸入Python的開發工具中去的,這樣做是為了學習和理解Python數據可視化畫圖的原理,但是在實際工作中,我們一定是去處理Python開發工具之外的一些數據,比如Excel表格保存的數據,或者其他格式的文件保存的數據。我們只需要用Python去讀取和處理這些外部文件的數據,而不必把這些數據一個一個手動輸入到Python開發工具中。
  • 學習Python能夠從事哪些方面的工作呢?
    想學習Python的小夥伴們,肯定聽到非常多關於Python就業方向非常廣泛的話題。那到底學習完成後,能夠從事哪些方面的工作呢?帶著問題一起深入了解一下Python的就業前景。在很早之前都是通過shell腳本來進行自動化操作,但是shell編程能力比較弱,可以實現的功能庫很少,Python作為膠水語言,可以進行集成,對各類工具可以進行二次開發。  3、遊戲開發:Python有很好的3D渲染庫和遊戲開發框架,有很多使用Python開發的遊戲,如迪斯尼卡通城、黑暗之刃。