前陣子發現有人以R語言七種武器來做為訓練課程或工具名稱的名稱,來代表R語言工具的使用技能。而這篇〈Python的七种武器_Python有哪些数据分析模块〉以及自己近期工作上的使用情況則激發了產生本文的靈感。
如果看倌是位武俠迷的話,應當會知道七種武器這名稱乃源自古龍武俠小說中的七種武器系列:長生劍、孔雀翎、碧玉刀、多情環、霸王槍、離別鉤、一口箱子。雖然第七種武器有其他二種說法:拳頭或是七殺手,但綜合各方面的因素看來,還是《英雄無淚》中的一口箱子較為合適。
Python不僅是個一般用途的語言,它在加裝幾個套件或模組後,就可立刻搖身一變成為數據分析的強大武器,一點也不遜色於主要為統計分析而打造的R語言,或是像MATLAB、SAS這類知名且歷史悠久的商業軟體。以下就介紹幾個能讓Python成為數據分析變形金剛的擴充套件:
- NumPy:提供大量多維陣列與矩陣運算的支援,還有高階數學函式以運算這些陣列。
- SciPy:基於NumPy陣列物件,所提供的模組包含最佳化、線性代數、積分、插值、特殊函式、快速傅立葉轉換、訊號與圖像處理、常微分方程求解和其他科學與工程常見工作。
- Pandas:它可不是真的熊貓,它的名稱是來自"Panel data",多維度結構化資料集的計量經濟學用詞。基於NumPy,做資料操縱與分析,特別是提供資料結構與運算以操縱數字表格與時間序列。它的DataFrame就相當於R的Data Frame。
- Matplotlib:做好的數據分析結果若想用漂亮的圖表呈現就交給它了。NumPy stack(或稱SciPy stack)包含了NumPy, SciPy, Pandas, Matplotlib等等……主要用於科學計算,作用就類似於MATLAB, GNU Octave這類軟體。
- Statsmodels:從Python 3.4開始,標準庫中新加入了一個statistics模組,提供基本的統計計算功能。而這個Statsmodels統計模組則是基於NumPy與SciPy,整合了Pandas做數據處理,補充了SciPy的stats模組,繪圖功能則是基於Matplotlib。
- Scikit-learn:基於NumPy、SciPy與Matplotlib的機器學習庫。提供各式分類、回歸與叢集演算法,包含支持向量機、隨機森林……。
- IPython/Jypyther Notebook:互動的計算與開發環境。除了提供互動式的shells,NoteBook則是一個可提供撰寫代碼、文字、繪圖……的網頁環境,甚至有人採用這環境做為寫作、簡報、教學的用途。這環境也可提供作為運用上述工具進行資料分析的工作,雖然也可採用不同環境與途徑,不見得非得用它不可,不過它是個簡潔而且相當廣泛被採用的方式。IPython近年的發展很快速,自4.0版開始已把Notebook分開到Jypyter專案,而專注於Interactive Python,目前已是5.2.2版。Jypyter則可提供給其它語言使用,如Julia, Ruby……,造福了更廣大的使用者。
參考:
沒有留言:
張貼留言