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=x2在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。
-
代碼
+關注
關注
30文章
4797瀏覽量
68712 -
機器學習
+關注
關注
66文章
8423瀏覽量
132751 -
數據分析
+關注
關注
2文章
1451瀏覽量
34075 -
python
+關注
關注
56文章
4797瀏覽量
84788
原文標題:會Python和不會Python的區別
文章出處:【微信號:TheBigData1024,微信公眾號:人工智能與大數據技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論