簡述 Python 的 Numpy、SciPy、Pandas、Matplotlib 的區別

擒賊先擒王發表於2019-02-16

 

From:https://www.jianshu.com/p/32cb09d84487

 

  1. Numpy:基礎的數學計算模組,以矩陣為主,純數學。
  2. SciPy:基於Numpy,提供方法(函式庫)直接計算結果,封裝了一些高階抽象和物理模型。比方說做個傅立葉變換,這是純數學的,用Numpy;做個濾波器,這屬於訊號處理模型了,在Scipy裡找。
  3. Pandas:提供了一套名為DataFrame的資料結構,適合統計分析中的表結構,在上層做資料分析,

更簡潔的說:

  1. NumPy:N維 陣列 容器
  2. SciPy:科學計算 函式庫
  3. Pandas:表格 容器

 

非數學研究,建議直接入手 pandas,包含基礎的 Numpy 方法

 

Numpy:

來儲存和處理大型矩陣,比Python自身的巢狀列表(nested list structure)結構要高效的多,本身是由C語言開發。這個是很基礎的擴充套件,其餘的擴充套件都是以此為基礎。資料結構為ndarray,一般有三種方式來建立。

numpy 主要用來做一些科學運算,主要是矩陣的運算。NumPy為Python帶來了真正的多維陣列功能,並且提供了豐富的函式庫處理這些陣列。它將常用的數學函式都進行陣列化,使得這些數學函式能夠直接對陣列進行操作,將本來需要在Python級別進行的迴圈,放到C語言的運算中,明顯地提高了程式的運算速度。

 

Pandas:

基於NumPy 的一種工具,該工具是為了解決資料分析任務而建立的。Pandas 納入了大量庫和一些標準的資料模型,提供了高效地操作大型資料集所需的工具。最具有統計意味的工具包,某些方面優於R軟體。資料結構有一維的Series,二維的DataFrame(類似於Excel或者SQL中的表,如果深入學習,會發現Pandas和SQL相似的地方很多,例如merge函式),三維的Panel(Pan(el) + da(ta) + s,知道名字的由來了吧)。

學習Pandas你要掌握的是:

  • 1.彙總和計算描述統計,處理缺失資料 ,層次化索引
  • 2.清理、轉換、合併、重塑、GroupBy技術
  • 3.日期和時間資料型別及工具(日期處理方便地飛起)

 

Matplotlib:

Python中最著名的繪圖系統,很多其他的繪圖例如seaborn(針對pandas繪圖而來)也是由其封裝而成。
繪製的圖形可以大致按照ggplot的顏色顯示,但是還是感覺很雞肋。但是matplotlib的複雜給其帶來了很強的定製性。其具有物件導向的方式及Pyplot的經典高層封裝。

需要掌握的是:

  • 1.散點圖,折線圖,條形圖,直方圖,餅狀圖,箱形圖的繪製。
  • 2.繪圖的三大系統:pyplot,pylab(不推薦),物件導向
  • 3.座標軸的調整,新增文字註釋,區域填充,及特殊圖形patches的使用
  • 4.金融的同學注意的是:可以直接呼叫Yahoo財經資料繪圖

 

Scipy:

方便、易於使用、專為科學和工程設計的Python工具包.它包括統計,優化,整合,線性代數模組,傅立葉變換,訊號和影象處理,常微分方程求解器等等。基本可以代替Matlab,但是使用的話和資料處理的關係不大,數學系,或者工程系相對用的多一些。
近期發現有個statsmodel可以補充scipy.stats,時間序列支援完美

scipy 主要是一些科學工具集,訊號處理工具集(如線性代數使用LAPACK庫,快速傅立葉變換使用FFTPACK庫)及數值計算的一些工具(常微分方程求解使用ODEPACK庫,非線性方程組求解以及最小值求解等)。

 

scikit-learn

scikit-learn:裡面有很多機器學習相關的演算法(如聚類演算法,SVM等)。

 

 

用Python來編寫機器學習方面的程式碼是相當簡單的,因為Python下有很多關於機器學習的庫。其中三個庫 numpy,scipy,matplotlib,scikit-learn是常用組合,分別是科學計算包,科學工具集,畫圖工具包,機器學習工具集。

Python安裝完Numpy,SciPy和MatplotLib後,可以成為非常犀利的科研利器。網上關於這三個庫的安裝都寫得非常不錯,但是大部分人遇到的問題並不是如何安裝,而是安裝好後因為配置不當,在使用時總會出現import xxx error之類的錯誤。我也是自己摸索了很久才發現如何去正確配置的

詳解Python中的Numpy、SciPy、MatPlotLib安裝與配置:https://www.jb51.net/article/128468.htm

 

 

Numpy和Scipy是機器學習專案中最受歡迎的函式庫 

 

參考:http://www.sohu.com/a/291941853_506163

 

 

 

相關文章