Python官方在今年2月做了一份報(bào)告,從官方的角度說明了Python的使用狀況和受歡迎程度:
該調(diào)查由 Python 軟件基金會(huì)與 JetBrains 一起發(fā)起,有來自 150 多個(gè)國(guó)家的超過兩萬名開發(fā)人員參與。
從官方喜出望外的報(bào)告中,我們可以看到Python受到大部分人的歡迎,依舊是用戶手中的香餑餑:
在Python的用途上,大家使用Python最常用的場(chǎng)景是數(shù)據(jù)分析,從漲幅來看也是最高的。相關(guān)的機(jī)器學(xué)習(xí)場(chǎng)景漲幅也有7%。
這不禁引出一個(gè)問題:Python作為編程語言在數(shù)據(jù)分析領(lǐng)域的地位似乎舉足輕重,但明明有更親民的Excel、Tableau、PowerBI等軟件,為什么數(shù)據(jù)分析師最終都會(huì)代碼化?
作為一名使用Python的數(shù)據(jù)分析師,我想舉幾個(gè)小例子說明:
原因 1
鼠標(biāo)操作流程手速太慢
即使是打游戲,手速也很大程度上來源于快捷鍵的使用。
數(shù)據(jù)分析也一樣,代碼能簡(jiǎn)化大量鼠標(biāo)操作流程,用語言將過程“腳本化”,會(huì)幫助分析師減去不必要的操作時(shí)間,留出更多時(shí)間放在“分析過程”上。
舉個(gè)例子,Excel做分析的過程可能是:定位空值-刪除空值-修改數(shù)據(jù)格式-去除異常值-公式計(jì)算-數(shù)據(jù)透視表-整理數(shù)據(jù)-插入圖表-調(diào)整結(jié)果……
繁瑣的每一步都是來自鼠標(biāo)點(diǎn)擊,中間錯(cuò)誤了哪一步,很多步驟都需要重新調(diào)整,浪費(fèi)大量時(shí)間。
圖中演示的是使用Excel進(jìn)行簡(jiǎn)單的描述統(tǒng)計(jì)分析過程,比較繁瑣。
Python靠的是代碼編寫每一步過程,統(tǒng)一語言帶來記錄方法的統(tǒng)一。當(dāng)分析過程需要修改,只需要調(diào)整設(shè)定好的參數(shù),效率當(dāng)然嗖嗖的。
使用Python代碼可以迅速調(diào)用數(shù)據(jù),計(jì)算需求,并記錄每一步過程,方便修改。
原因 2
Python擁有強(qiáng)大的庫(kù)
分析軟件每開發(fā)出一個(gè)新功能需要大量投入。而Python作為編程語言,開發(fā)新工具相對(duì)容易,一個(gè)人開發(fā)一個(gè)庫(kù)的例子比比皆是。并且Python的使用熱度帶來了大量的大神,Python工具庫(kù)可謂應(yīng)有盡有,這也是Python有前文報(bào)告中眾多用途的原因。
回到數(shù)據(jù)分析,以Python可視化必知基本庫(kù)matplotlib為例,光是他的官方gallery就有26個(gè)大類527個(gè)樣式,數(shù)量上就碾壓了市面上大部分同功能軟件。
matplotlib官網(wǎng):https://matplotlib.org/tutorials/index.html
此外Python可視化類工具會(huì)有針對(duì)圖表樣式進(jìn)行調(diào)整的代碼,也可以交互,幾行代碼,省時(shí)省力,分分鐘關(guān)機(jī)下班。
原因 3
代碼輔助數(shù)學(xué)算法
小時(shí)候不愛數(shù)學(xué),因?yàn)橛憛捰浄爆嵉墓胶瓦M(jìn)行步驟推算,一步算錯(cuò),步步算錯(cuò),而且我還無法理解為什么老師要求這么算。
但代碼的出現(xiàn)拯救了我對(duì)數(shù)學(xué)的偏見。它能從特例的角度復(fù)現(xiàn)數(shù)學(xué)推理過程。通過計(jì)算機(jī)成千上萬次的計(jì)算,讓我更快理解算法的含義。
截圖來自3blue1brown的微積分教學(xué)視頻《微積分的本質(zhì)》
以一道高中數(shù)學(xué)求導(dǎo)題為例:
求y=x2在x=2時(shí)的導(dǎo)數(shù)。
這道題不難,使用求導(dǎo)公式可知導(dǎo)數(shù)是4。但很多函數(shù)是不方便推導(dǎo)求導(dǎo)公式的,是否可以從導(dǎo)數(shù)的定義出發(fā),尋找特例說明問題?
有的。
這道題要求的其實(shí)是連續(xù)可導(dǎo)函數(shù)f的曲線上,x=2時(shí)切線的斜率,那么我們可以定義一個(gè)移動(dòng)的點(diǎn)m,使得m不斷的接近x,當(dāng)(m-x)足夠小時(shí),(f(m)-f(x))/(m-x)會(huì)越來越接近該點(diǎn)的所在曲線的切線斜率,也就是我們要求的導(dǎo)數(shù)。
圖中所示程序迭代了1000次,點(diǎn)m以一定的0.01個(gè)單位的速度不斷趨近x,結(jié)果導(dǎo)數(shù)(斜率)在不斷趨近于4。
通過這個(gè)案例,我想說明的是代碼的存在讓模擬和迭代變得可能,定義一個(gè)規(guī)則,找到一個(gè)特例,讓程序模擬千萬遍,答案會(huì)呼之欲出。
這是一種使用程序構(gòu)建算法的思想。
另一個(gè)有趣的案例是基于Python的梯度下降算法,使用Python多次模擬尋找最小化的損失函數(shù)和模型參數(shù)值。
案例文名為《Python推導(dǎo)線性回歸模型》的文章,用到了梯度下降的方法推導(dǎo)出線性回歸模型,適合python數(shù)據(jù)分析及機(jī)器學(xué)習(xí)初學(xué)者觀看,完整鏈接見文末。
總結(jié)一下,數(shù)據(jù)分析師為什么會(huì)要求寫代碼?
原因在于代碼在數(shù)據(jù)分析上更高效、豐富和自由。事實(shí)上代碼不僅幫助分析,更能幫助邏輯思維。
如果你想自己感受下使用代碼做數(shù)據(jù)分析帶來的高效,建議你現(xiàn)在就可以開始學(xué)習(xí)Python。
-
代碼
+關(guān)注
關(guān)注
30文章
4671瀏覽量
67770 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8306瀏覽量
131846 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1393瀏覽量
33909 -
python
+關(guān)注
關(guān)注
53文章
4753瀏覽量
84081
原文標(biāo)題:會(huì)Python和不會(huì)Python的區(qū)別
文章出處:【微信號(hào):TheBigData1024,微信公眾號(hào):人工智能與大數(shù)據(jù)技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論