
大數(shù)據(jù)處理需要用到的九種編程語(yǔ)言
隨著大數(shù)據(jù)的熱潮不斷升溫,幾乎各個(gè)領(lǐng)域都有洪水傾瀉般的信息涌來(lái),面對(duì)用戶成千上萬(wàn)的瀏覽記錄、記錄行為數(shù)據(jù),如果就單純的Excel來(lái)進(jìn)行數(shù)據(jù)處理是遠(yuǎn)遠(yuǎn)不能滿足的。但如果只用一些操作軟件來(lái)分析,而不怎么如何用邏輯數(shù)據(jù)來(lái)分析的話,那也只是簡(jiǎn)單的數(shù)據(jù)處理。
替代性很高的工作,而無(wú)法深入規(guī)劃策略的核心。
當(dāng)然,基本功是最不可忽略的環(huán)節(jié),想要成為數(shù)據(jù)科學(xué)家,對(duì)于這幾個(gè)程序你應(yīng)該要有一定的認(rèn)識(shí):
若要列出所有程序語(yǔ)言,你能忘記其他的沒關(guān)系,但最不能忘的就是R。從1997年悄悄地出現(xiàn),最大的優(yōu)勢(shì)就是它免費(fèi),為昂貴的統(tǒng)計(jì)軟件像是Matlab或SAS的另一種選擇。
但是在過(guò)去幾年來(lái),它的身價(jià)大翻轉(zhuǎn),變成了資料科學(xué)界眼中的寶。不只是木訥的統(tǒng)計(jì)學(xué)家熟知它,包括WallStreet交易員、生物學(xué)家,以及硅谷開發(fā)者,他們都相當(dāng)熟悉R。多元化的公司像是Google、Facebook、美國(guó)銀行以及NewYorkTimes通通都使用R,它的商業(yè)效用持續(xù)提高。
R的好處在于它簡(jiǎn)單易上手,透過(guò)R,你可以從復(fù)雜的數(shù)據(jù)集中篩選你要的數(shù)據(jù),從復(fù)雜的模型函數(shù)中操作數(shù)據(jù),建立井然有序的圖表來(lái)呈現(xiàn)數(shù)字,這些都只需要幾行程序代碼就可以了,打個(gè)比方,它就像是好動(dòng)版本的Excel。
R最棒的資產(chǎn)就是活躍的動(dòng)態(tài)系統(tǒng),R社群持續(xù)地增加新的軟件包,還有以內(nèi)建豐富的功能集為特點(diǎn)。目前估計(jì)已有超過(guò)200萬(wàn)人使用R,最近的調(diào)查顯示,R在數(shù)據(jù)科學(xué)界里,到目前為止最受歡迎的語(yǔ)言,占了回復(fù)者的61%(緊追在后的是39%的Python)。
它也吸引了WallStreet的注目。傳統(tǒng)而言,證券分析師在Excel檔從白天看到晚上,但現(xiàn)在R在財(cái)務(wù)建模的使用率逐漸增加,特別是可視化工具,美國(guó)銀行的副總裁NiallO’Conno說(shuō),「R讓我們俗氣的表格變得突出」。
在數(shù)據(jù)建模上,它正在往逐漸成熟的專業(yè)語(yǔ)言邁進(jìn),雖然R仍受限于當(dāng)公司需要制造大規(guī)模的產(chǎn)品時(shí),而有的人說(shuō)他被其他語(yǔ)言篡奪地位了。
“R更有用的是在畫圖,而不是建模。”頂尖數(shù)據(jù)分析公司Metamarkets的CEO,MichaelDriscoll表示,
“你不會(huì)在Google的網(wǎng)頁(yè)排名核心或是Facebook的朋友們推薦算法時(shí)看到R的蹤影,工程師會(huì)在R里建立一個(gè)原型,然后再到Java或Python里寫模型語(yǔ)法”。
舉一個(gè)使用R很有名的例子,在2010年時(shí),PaulButler用R來(lái)建立Facebook的世界地圖,證明了這個(gè)語(yǔ)言有多豐富多強(qiáng)大的可視化數(shù)據(jù)能力,雖然他現(xiàn)在比以前更少使用R了。
“R已經(jīng)逐漸過(guò)時(shí)了,在龐大的數(shù)據(jù)集底下它跑的慢又笨重”Butler說(shuō)。
所以接下來(lái)他用什么呢?
如果說(shuō)R是神經(jīng)質(zhì)又令人喜愛的Geek,那Python就是隨和又好相處的女生。
Python結(jié)合了R的快速、處理復(fù)雜數(shù)據(jù)采礦的能力以及更務(wù)實(shí)的語(yǔ)言等各個(gè)特質(zhì),迅速地成為主流,Python比起R,學(xué)起來(lái)更加簡(jiǎn)單也更直觀,而且它的生態(tài)系統(tǒng)近幾年來(lái)不可思議地快速成長(zhǎng),在統(tǒng)計(jì)分析上比起R功能更強(qiáng)。
Butler說(shuō),“過(guò)去兩年間,從R到Python地顯著改變,就像是一個(gè)巨人不斷地推動(dòng)向前進(jìn)”。
在數(shù)據(jù)處理范疇內(nèi),通常在規(guī)模與復(fù)雜之間要有個(gè)取舍,而Python以折衷的姿態(tài)出現(xiàn)。IPythonNotebook(記事本軟件)和NumPy被用來(lái)暫時(shí)存取較低負(fù)擔(dān)的工作量,然而Python對(duì)于中等規(guī)模的數(shù)據(jù)處理是相當(dāng)好的工具;Python擁有豐富的資料族,提供大量的工具包和統(tǒng)計(jì)特征。
美國(guó)銀行用Python來(lái)建立新產(chǎn)品和在銀行的基礎(chǔ)建設(shè)接口,同時(shí)也處理財(cái)務(wù)數(shù)據(jù),“Python是更廣泛又相當(dāng)有彈性,所以大家會(huì)對(duì)它趨之若鶩?!監(jiān)’Donnell如是說(shuō)。
然而,雖然它的優(yōu)點(diǎn)能夠彌補(bǔ)R的缺點(diǎn),它仍然不是最高效能的語(yǔ)言,偶爾才能處理龐大規(guī)模、核心的基礎(chǔ)建設(shè)。Driscoll是這么認(rèn)為的。
今日大多數(shù)的數(shù)據(jù)科學(xué)都是透過(guò)R、Python、Java、Matlab及SAS為主,但仍然存在著鴻溝要去彌補(bǔ),而這個(gè)時(shí)候,新進(jìn)者Julia看到了這個(gè)痛點(diǎn)。
Julia仍太過(guò)于神秘而尚未被業(yè)界廣泛的采用,但是當(dāng)談到它的潛力足以搶奪R和Python的寶座時(shí),數(shù)據(jù)黑客也難以解釋。原因在于Julia是個(gè)高階、不可思議的快速和善于表達(dá)的語(yǔ)言,比起R要快的許多,比起Python又有潛力處理更具規(guī)模的數(shù)據(jù),也很容易上手。
“Julia會(huì)變的日漸重要,最終,在R和Python可以做的事情在Julia也可以”。Butler是這么認(rèn)為的。
就現(xiàn)在而言,若要說(shuō)Julia發(fā)展會(huì)倒退的原因,大概就是它太年輕了。Julia的數(shù)據(jù)小區(qū)還在初始階段,在它要能夠和R或Python競(jìng)爭(zhēng)前,它還需要更多的工具包和軟件包。
Driscoll說(shuō),它就是因?yàn)樗贻p,才會(huì)有可能變成主流又有前景。
Driscoll說(shuō),Java和以Java為基礎(chǔ)的架構(gòu),是由硅谷里最大的幾家科技公司的核心所建立的,如果你從Twitter、Linkedin或是Facebook里觀察,你會(huì)發(fā)現(xiàn)Java對(duì)于所有數(shù)據(jù)工程基礎(chǔ)架構(gòu)而言,是非?;A(chǔ)的語(yǔ)言。
Java沒有和R和Python一樣好的可視化功能,它也不是統(tǒng)計(jì)建模的最佳工具,但是如果你需要建立一個(gè)龐大的系統(tǒng)、使用過(guò)去的原型,那Java通常會(huì)是你最基的選擇。
為了迎合大量數(shù)據(jù)處理的需求,以Java為基礎(chǔ)的工具群興起。Hadoop為處理一批批數(shù)據(jù)處理,發(fā)展以Java為基礎(chǔ)的架構(gòu)關(guān)鍵;相較于其他處理工具,Hadoop慢許多,但是無(wú)比的準(zhǔn)確和可被后端數(shù)據(jù)庫(kù)分析廣泛使用。和Hive搭配的很好,Hive是基于查詢的架構(gòu)下,運(yùn)作的相當(dāng)好。
又是另一個(gè)以Java為基礎(chǔ)的語(yǔ)言,和Java很像,對(duì)任何想要進(jìn)行大規(guī)模的機(jī)械學(xué)習(xí)或是建立高階的算法,Scala會(huì)是逐漸興起的工具。它是善于呈現(xiàn)且擁有建立可靠系統(tǒng)的能力。
“Java像是用鋼鐵建造的;Scala則是讓你能夠把它拿進(jìn)窯烤然后變成鋼的黏土”Driscoll說(shuō)。
說(shuō)到當(dāng)你需要快速的、實(shí)時(shí)的分析時(shí),你會(huì)想到什么?Kafka將會(huì)是你的最佳伙伴。其實(shí)它已經(jīng)出現(xiàn)五年有了,只是因?yàn)樽罱魈幚砼d起才變的越來(lái)越流行。
Kafka是從Linkedin內(nèi)誕生的,是一個(gè)特別快速的查詢訊息系統(tǒng)。Kafka的缺點(diǎn)呢?就是它太快了,因此在實(shí)時(shí)操作時(shí)它會(huì)犯錯(cuò),有時(shí)候會(huì)漏掉東西。
魚與熊掌不可兼得,「必須要在準(zhǔn)確度跟速度之間做一個(gè)選擇」,Driscoll說(shuō)。所以全部在硅谷的科技大公司都利用兩個(gè)管道:用Kafka或Storm處理實(shí)時(shí)數(shù)據(jù),接下來(lái)打開Hadoop處理一批批處理數(shù)據(jù)系統(tǒng),這樣聽起來(lái)有點(diǎn)麻煩又會(huì)有些慢,但好處是,它非常非常精準(zhǔn)。
Storm是另一個(gè)從Scala寫出來(lái)的架構(gòu),在硅谷逐漸大幅增加它在串流處理的受歡迎程度,被Twitter并購(gòu),這并不意外,因?yàn)門witter對(duì)快速事件處理有極大的興趣。
Matlab可以說(shuō)是歷久不衰,即使它標(biāo)價(jià)很高;在非常特定的利基市場(chǎng)它使用的相當(dāng)廣泛,包括密集的研究機(jī)器學(xué)習(xí)、信號(hào)處理、圖像辨識(shí)等等。
Octave和Matlab很像,除了它是免費(fèi)的之外。然而,在學(xué)術(shù)信號(hào)處理的圈子,幾乎都會(huì)提到它。
GO是另一個(gè)逐漸興起的新進(jìn)者,從Google開發(fā)出來(lái)的,放寬點(diǎn)說(shuō),它是從C語(yǔ)言來(lái)的,并且在建立強(qiáng)大的基礎(chǔ)架構(gòu)上,漸漸地成為Java和Python的競(jìng)爭(zhēng)者。
這么多的軟件可以使用,但我認(rèn)為不見得每個(gè)都一定要會(huì)才行,知道你的目標(biāo)和方向是什么,就選定一個(gè)最適合的工具使用吧!可以幫助你提升效率又達(dá)到精準(zhǔn)的結(jié)果。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
訓(xùn)練與驗(yàn)證損失驟升:機(jī)器學(xué)習(xí)訓(xùn)練中的異常診斷與解決方案 在機(jī)器學(xué)習(xí)模型訓(xùn)練過(guò)程中,“損失曲線” 是反映模型學(xué)習(xí)狀態(tài)的核心指 ...
2025-09-19解析 DataHub 與 Kafka:數(shù)據(jù)生態(tài)中兩類核心工具的差異與協(xié)同 在數(shù)字化轉(zhuǎn)型加速的今天,企業(yè)對(duì)數(shù)據(jù)的需求已從 “存儲(chǔ)” 轉(zhuǎn)向 “ ...
2025-09-19CDA 數(shù)據(jù)分析師:讓統(tǒng)計(jì)基本概念成為業(yè)務(wù)決策的底層邏輯 統(tǒng)計(jì)基本概念是商業(yè)數(shù)據(jù)分析的 “基礎(chǔ)語(yǔ)言”—— 從描述數(shù)據(jù)分布的 “均 ...
2025-09-19CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-19SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11