你不可不知的 Python模組

從Python內建模組,到數據分析,再到深度學習

Frankie
CodingBar
5 min readFeb 28, 2019

--

文/Frankie

今天要介紹常用的模組,以及各大領域幾個「你必須要知道的模組」。有些模組幾乎在所有的專案都會出現,因此可以稱為「必學模組」。後面將會簡介進階領域的常見模組,如果發現了有興趣的模組,就趕快深入研究看看吧!

必學模組

os

os 這個模組非常常用,也非常的好用,主要用於進行系統級別的操作,從重新命名、移動檔案、刪除檔案、複製檔案…等等,基本上你會對檔案做的事,還有對目錄(資料夾)的操作,這個模組都能幫助你在程式中做到!

time 和 datetime

這兩個模組相輔相成,常常需要在彼此間互相轉換,因為常常用到時間戳、格式化的時間字串、及元組等不同類型的元件。他們能做到的事也相當多,基本上只要你需要操作時間,或是運算日期等等,都必須用到他們。

random

random 是在做什麼的呢?顧名思義,就是在做跟隨機相關操作的模組,Bar主個人認為是最常用到的模組,用法非常多,舉凡生產隨機整數、小數,從串列中隨機挑選一個物件,甚至是直接打亂串列排序的洗牌動作等等,random 全部都能用幾行程式碼輕鬆完成。

數據分析、資料科學

NumPy

Numpy 是 Python 的一個重要模組,主要用於資料處理上。Numpy 底層以 C 和 Fortran 語言實作,所以能快速操作多重維度的陣列。當 Python 處理龐大資料時,內建的資料型態 list 效能並不理想,而 Numpy 具備平行處理的能力,可以將操作動作一次套用在大型陣列上。此外, Python 其餘重量級的資料科學相關套件(例如:Pandas、SciPy、Scikit-learn 等)都幾乎是奠基在 Numpy 的基礎上。因此學會 Numpy 對於往後學習其他資料科學相關套件打好堅實的基礎。

SciPy

常用科學計算的另一個重要模組就是 SciPy。SciPy 是一種使用 NumPy 為基底,來做高等數學、統計和許多其它科學任務的模組。它基於NumPy,並擴展了NumPy的功能。SciPy 的主要的數據結構是由 Numpy 實現的多維陣列。這個模組包含了解決線性代數概率論積分等等高等。

然而,scipy和numpy 都沒有提供繪圖函式。它們只是數值處理的工具,能夠輔助繪圖的模組待會就會推薦。

Pandas

Pandas 也是一個常用 Python 模組,提供了高階的資料結構和多種分析工具。它的最大特點是能夠將複雜的數據操作,轉換成一兩個命令。Pandas包含許多用於分組、過濾和組合數據以及時間序列功能的內置函式。

Pandas在前陣子的版本更新中,增加了數百個新特性、並且對bug進行修復以及API更改。這些改進是針對數據分組和排序的能力,讓它變得更容易輸出,以及支持對自定義的類別(class)進行操作。

資料視覺化

Matplotlib

Matplotlib 是一個用於創建二維圖表和圖形的模組。在它的幫助下,你可以輕鬆構建不同的圖表,從直條圖、點狀圖到笛卡爾坐標圖都可以。重點是,很多熱門的模組都支持與 Matplotlib 協同工作。

Matplotlib 雖然主要都是用純Python寫的,但是為了在運行時有更高的性能,尤其是在顯示大量數據的情況下,裡面也大量使用了NumPy。

Bokeh

Bokeh模組透過JavaScript在瀏覽器中創造出互動式、可伸縮的視覺效果。 它提供了各式各樣的視覺化必須的輔助函式,同時也將網頁前端的技術細節包裝成一個個的 Python 函式與參數供我們呼叫,讓我們不再需要編輯 HTML 與 JavaScript 便能製作網頁前端視覺化。

深度學習

TensorFlows

ㄧTensorFlow是在 Google大腦中開發的一個用於深度和機器學習的流行框架。它提供了具有多個數據集的人工神經網絡一起工作的能力。在最流行的TensorFlow 應用程序中,有對象識別、語音識別等等…,而且,它的更新速度非常快。

PyTorch

PyTorch是一個大型框架,允許你使用GPU加速執行張量計算,創建動態計算圖,並自動計算梯度。以此為基礎,PyTorch 為解決與神經網絡相關的應用程序提供了豐富的API。這個模組基於Torch,是一個開源的深度學習庫,通過C語言實現。從2017年起進入眾人視野,該框架就越來越受歡迎,並吸引了越來越多的數據科學家。

--

--