Numpy、Scipy、Pandas這些庫的區別是什么?

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

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

scipy 是一個用于數學、科學、工程領域的常用軟件包,可以處理最優化、線性代數、積分、插值、擬合、特殊函數、快速傅里葉變換、信號處理、圖像處理、常微分方程求解器等。。
其包含的模塊有最優化、線性代數、積分、插值、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算。
scipy中主要的計算模塊:
- scipy.integrate:數值積分例程和微分方程求解器
- scipy.linalg:擴展了由numpy.linalg提供的線性代數例程和矩陣分解功能
- scipy.optimize:函數優化器(最小化器)以及跟查找算法
- scipy.signal:信號處理工具
- scipy.sparse:稀疏矩陣和系數線性系統求解器
- scipy.special:SPECFUN(這是一個實現了許多常用數學函數(如伽馬函數)的Fortran庫)的包裝器
- scipy.stats:標準連續和離散概率分布、各種統計檢驗方法,以及更好的描述統計法
- scipy.weave:利用內聯C++代碼加速數組計算的工具
綜上所述,pandas和scipy是建立在numpy數組基礎之上的數據工具,三者的協同工作可以高效解決很多問題,在金融、財務、天文、生物、氣象和氣候、材料等多個領域得到了廣泛應用。






























