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