numpy、scipy、pandas這些庫的區(qū)別是什么?
知乎上有個熱門問題,問numpy,scipy,pandas這3個庫的區(qū)別是什么?
打個比方,pandas類似Excel軟件,scipy就像Excel里的函數(shù)算法包,numpy則好比構(gòu)建Excel邏輯的底層語句。
所以說pandas擅長數(shù)據(jù)處理,scipy精通數(shù)學(xué)計算,numpy是構(gòu)建pandas、scipy的基礎(chǔ)庫。
我們知道numpy通過N維數(shù)組來實現(xiàn)快速的數(shù)據(jù)計算和處理,它也是Python眾多數(shù)據(jù)科學(xué)庫的依賴,其中就包括pandas、scipy。
而numpy本身不依賴于任何其他Python軟件包,只依賴于加速的線性代數(shù)庫,通常為 Intel MKL或 OpenBLAS。

pandas是python數(shù)據(jù)處理的核心庫,它基于數(shù)組形式提供了極其豐富的數(shù)據(jù)操作,對比excel有過之而無不及。
它可以對各種數(shù)據(jù)進行運算操作,比如歸并、再成形、選擇,還有數(shù)據(jù)清洗和數(shù)據(jù)加工特征,廣泛應(yīng)用在學(xué)術(shù)、金融、統(tǒng)計學(xué)等各個數(shù)據(jù)分析領(lǐng)域。
一般來說,學(xué)python數(shù)據(jù)分析只需要學(xué)透pandas就夠了,輔助加一些numpy、scipy、matplotlib等庫。

scipy 是一個用于數(shù)學(xué)、科學(xué)、工程領(lǐng)域的常用軟件包,可以處理最優(yōu)化、線性代數(shù)、積分、插值、擬合、特殊函數(shù)、快速傅里葉變換、信號處理、圖像處理、常微分方程求解器等。。
其包含的模塊有最優(yōu)化、線性代數(shù)、積分、插值、特殊函數(shù)、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學(xué)與工程中常用的計算。

scipy中主要的計算模塊:
scipy.integrate:數(shù)值積分例程和微分方程求解器 scipy.linalg:擴展了由numpy.linalg提供的線性代數(shù)例程和矩陣分解功能 scipy.optimize:函數(shù)優(yōu)化器(最小化器)以及跟查找算法 scipy.signal:信號處理工具 scipy.sparse:稀疏矩陣和系數(shù)線性系統(tǒng)求解器 scipy.special:SPECFUN(這是一個實現(xiàn)了許多常用數(shù)學(xué)函數(shù)(如伽馬函數(shù))的Fortran庫)的包裝器 scipy.stats:標(biāo)準(zhǔn)連續(xù)和離散概率分布、各種統(tǒng)計檢驗方法,以及更好的描述統(tǒng)計法 scipy.weave:利用內(nèi)聯(lián)C++代碼加速數(shù)組計算的工具
綜上所述,pandas和scipy是建立在numpy數(shù)組基礎(chǔ)之上的數(shù)據(jù)工具,三者的協(xié)同工作可以高效解決很多問題,在金融、財務(wù)、天文、生物、氣象和氣候、材料等多個領(lǐng)域得到了廣泛應(yīng)用。

加入知識星球【我們談?wù)摂?shù)據(jù)科學(xué)】
500+小伙伴一起學(xué)習(xí)!
· 推薦閱讀 ·
