歡迎光臨
每天分享高質量文章

資料分析師最終都會代碼化的3點原因

Python官方在今年2月做了一份報告,從官方的角度說明瞭Python的使用狀況和受歡迎程度:

 

該調查由 Python 軟體基金會與 JetBrains 一起發起,有來自 150 多個國家的超過兩萬名開發人員參與。

從官方喜出望外的報告中,我們可以看到Python受到大部分人的歡迎,依舊是用戶手中的香餑餑:

在Python的用途上,大家使用Python最常用的場景是資料分析從漲幅來看也是最高的。相關的機器學習場景漲幅也有7%。

這不禁引出一個問題:Python作為編程語言在資料分析領域的地位似乎舉足輕重,但明明有更親民的Excel、Tableau、PowerBI等軟體,為什麼資料分析師最終都會代碼化?

 

作為一名使用Python的資料分析師,我想舉幾個小例子說明:

 

 

原因 1

滑鼠操作流程手速太慢 

即使是打游戲,手速也很大程度上來源於快捷鍵的使用。

資料分析也一樣,代碼能簡化大量滑鼠操作流程,用語言將過程“腳本化”,會幫助分析師減去不必要的操作時間,留出更多時間放在“分析過程”上。

 

舉個例子,Excel做分析的過程可能是:定位空值-刪除空值-修改資料格式-去除異常值-公式計算-資料透視表-整理資料-插入圖表-調整結果……

繁瑣的每一步都是來自滑鼠點擊,中間錯誤了哪一步,很多步驟都需要重新調整,浪費大量時間。

圖中演示的是使用Excel進行簡單的描述統計分析過程,比較繁瑣。

Python靠的是代碼編寫每一步過程,統一語言帶來記錄方法的統一。當分析過程需要修改,只需要調整設定好的引數,效率當然嗖嗖的。

使用Python代碼可以迅速呼叫資料,計算需求,並記錄每一步過程,方便修改。

原因 2

Python擁有強大的庫 

 

分析軟體每開發出一個新功能需要大量投入。而Python作為編程語言,開發新工具相對容易,一個人開發一個庫的例子比比皆是。並且Python的使用熱度帶來了大量的大神,Python工具庫可謂應有盡有,這也是Python有前文報告中眾多用途的原因。

 

回到資料分析,以Python可視化必知基本庫matplotlib為例,光是他的官方gallery就有26個大類527個樣式,數量上就碾壓了市面上大部分同功能軟體。

matplotlib官網:https://matplotlib.org/tutorials/index.html

此外Python可視化類工具會有針對圖表樣式進行調整的代碼,也可以交互,幾行代碼,省時省力,分分鐘關機下班。

 

原因 3

代碼輔助數學演算法

小時候不愛數學,因為討厭記繁瑣的公式和進行步驟推算,一步算錯,步步算錯,而且我還無法理解為什麼老師要求這麼算。

但代碼的出現拯救了我對數學的偏見。它能從特例的角度復現數學推理過程。通過計算機成千上萬次的計算,讓我更快理解演算法的含義。

截圖來自3blue1brown的微積分教學視頻《微積分的本質》

以一道高中數學求導題為例:

 

求y=x²在x=2時的導數。

 

這道題不難,使用求導公式可知導數是4。但很多函式是不方便推導求導公式的,是否可以從導數的定義出發,尋找特例說明問題?

有的。

這道題要求的其實是連續可導函式f的曲線上,x=2時切線的斜率,那麼我們可以定義一個移動的點m,使得m不斷的接近x,當(m-x)足夠小時,(f(m)-f(x))/(m-x)會越來越接近該點的所在曲線的切線斜率,也就是我們要求的導數。

圖中所示程式迭代了1000次,點m以一定的0.01個單位的速度不斷趨近x,結果導數(斜率)在不斷趨近於4。

 

通過這個案例,我想說明的是代碼的存在讓模擬和迭代變得可能,定義一個規則,找到一個特例,讓程式模擬千萬遍,答案會呼之欲出。

這是一種使用程式構建演算法的思想。

另一個有趣的案例是基於Python的梯度下降演算法,使用Python多次模擬尋找最小化的損失函式和模型引數值。

案例文名為《Python推導線性回歸模型》的文章,用到了梯度下降的方法推匯出線性回歸模型,適合python資料分析及機器學習初學者觀看,完整鏈接見文末。

總結一下,資料分析師為什麼會要求寫代碼?

 

原因在於代碼在資料分析上更高效、豐富和自由。事實上代碼不僅幫助分析,更能幫助邏輯思維。

如果你想自己感受下使用代碼做資料分析帶來的高效,建議你現在就可以開始學習Python。

    赞(0)

    分享創造快樂