
R語(yǔ)言和Python—一個(gè)錯(cuò)誤的分裂
最近有一些文章提出與年齡相關(guān)的問(wèn)題:“嶄露頭角的年輕數(shù)據(jù)科學(xué)家們是學(xué)習(xí)R語(yǔ)言還是Python更好?”
答案似乎都是“視情況而定”,在現(xiàn)實(shí)中沒(méi)有必要在R和Python中做出選擇,因?yàn)槟銉蓚€(gè)都用得到。
什么是”數(shù)據(jù)科學(xué)”?
在談?wù)揜Py2之前,先來(lái)說(shuō)一下“數(shù)據(jù)科學(xué)”,我要說(shuō)的是“數(shù)據(jù)科學(xué)”是一個(gè)奇怪的詞。因?yàn)閹缀跛械目茖W(xué)都是“數(shù)據(jù)科學(xué)”?!盁o(wú)數(shù)據(jù)科學(xué)”則是完全不同的領(lǐng)域:哲學(xué)?!皵?shù)據(jù)科學(xué)”是一門(mén)通過(guò)系統(tǒng)觀察,對(duì)照實(shí)驗(yàn),貝葉斯推理的開(kāi)放試驗(yàn)理念的科學(xué)學(xué)科。
“數(shù)據(jù)科學(xué)”的目標(biāo)是從數(shù)據(jù)中得出有效的統(tǒng)計(jì)推論。標(biāo)簽“數(shù)據(jù)”是指數(shù)據(jù)用于做什么并不重要,但這是錯(cuò)誤的:它是難以且不可能做到科學(xué)的在沒(méi)有得到數(shù)據(jù)的詳細(xì)信息,得去了解系統(tǒng)的弱點(diǎn)并生產(chǎn)出來(lái),智能、靈敏的應(yīng)對(duì)非理想好數(shù)據(jù)。
任何有趣的數(shù)據(jù)集至少有以下一些特性:缺失值,異常值和噪聲。缺失值:顧名思義就是缺失的值。異常值:離群怪異的事件,由于某種原因或其他的事件其值遠(yuǎn)遠(yuǎn)的超出合理界限。噪聲的是,從所測(cè)量的值的隨機(jī)(或非隨機(jī)的)影響的著結(jié)果的分布。一個(gè)良好的測(cè)量分布,異常值和噪聲在噪聲不同下一般有較容易理解的因素,而異常值通常是很少發(fā)生的,我們不能通過(guò)分布很好的理解。
對(duì)于處理這類(lèi)事情R,Python和RPY的都是有用的工具。
為什么R非常適合數(shù)據(jù)科學(xué)
R語(yǔ)言對(duì)有經(jīng)驗(yàn)的統(tǒng)計(jì)分析師來(lái)說(shuō)是非常輕量級(jí). 它由科學(xué)家創(chuàng)造,對(duì)絕大多數(shù)的數(shù)據(jù)管理任務(wù)來(lái)說(shuō)都非常輕松。特別適合以下幾種數(shù)據(jù)管理任務(wù):
標(biāo)記數(shù)據(jù)
填充遺漏值(譯者注:比如10行數(shù)據(jù)每行固定9列,但是第三行卻只有5列數(shù)據(jù),可以通過(guò)R的函數(shù)自動(dòng)補(bǔ)全另外的5列值)
過(guò)濾
R語(yǔ)言對(duì)標(biāo)記數(shù)據(jù)的支持非常友好. R語(yǔ)言的“data frame”概念,使得通過(guò)對(duì)數(shù)據(jù)列和數(shù)據(jù)行頭來(lái)分割組合數(shù)據(jù)、標(biāo)記數(shù)據(jù),然后以純數(shù)值的矩陣數(shù)據(jù)交給算法處理. 而傳統(tǒng)的數(shù)據(jù)科學(xué)開(kāi)發(fā)語(yǔ)言,如Python對(duì)數(shù)據(jù)的處理都需要開(kāi)發(fā)者自己完成,需要消耗開(kāi)發(fā)者大量時(shí)間且容易出錯(cuò).
處理或丟棄遺漏值、離群值(譯者注:極值,如最大值、最小值)在數(shù)據(jù)中是非?;镜匾娜蝿?wù). 某些情況下,本來(lái)是有利的數(shù)據(jù),卻因?yàn)闇y(cè)量誤差等原因變成了不利、反對(duì)的數(shù)據(jù)。(譯者注:比如越趨近于1才表示越可能是.)你如何處理這些事情可以對(duì)你的分析結(jié)果產(chǎn)生很大的影響。
R語(yǔ)言提供了豐富的算法來(lái)處理長(zhǎng)期以來(lái)科學(xué)實(shí)踐中出現(xiàn)的各種數(shù)據(jù)有關(guān)問(wèn)題,雖然這些算法仍然需要自己去嘗試和判斷選擇,以選擇最恰當(dāng)?shù)臄?shù)據(jù)處理算法.
RPy2: 架起R語(yǔ)言與Python之間的橋梁
Pandas,Python的數(shù)據(jù)分析庫(kù),目前它已經(jīng)有很多相同功能,但是RPy2創(chuàng)造了一條很好的從R語(yǔ)言到Python的遷移路線(xiàn),它讓你在學(xué)習(xí)Python的時(shí)候,把R語(yǔ)言作為一個(gè)附屬部分來(lái)學(xué)習(xí),對(duì)于很多有豐富實(shí)驗(yàn)開(kāi)發(fā)經(jīng)驗(yàn)的分析師會(huì)使用R語(yǔ)言,當(dāng)他們想把算法融入一個(gè)Python應(yīng)用程序,并分發(fā)給用戶(hù)時(shí),他們也可以使用RPy2。
執(zhí)行這種遷移的能力,而不離開(kāi)R語(yǔ)言的概念模型是很有價(jià)值的,但從另一個(gè)角度來(lái)說(shuō),這也是一個(gè)限制,能夠使用一個(gè)真正的通用編程語(yǔ)言,如:Python,來(lái)包裝概念模型,并使得這個(gè)用戶(hù)友好的應(yīng)用程序有多種復(fù)雜的附加功能(打印,網(wǎng)絡(luò),USB支持,等等)是至關(guān)重要的。
舉例來(lái)說(shuō),我已經(jīng)使用了這種方法來(lái)創(chuàng)建讀取傳感器數(shù)據(jù)的Python應(yīng)用,通過(guò)RPy2處理,以各種方式顯示給客戶(hù),我不知道怎么用R語(yǔ)言讀取傳感器數(shù)據(jù),應(yīng)該是有某種方法的。而Python已經(jīng)做好了我需要的模塊,即使沒(méi)有也非常容易擴(kuò)展。
如果你還不知道R語(yǔ)言,我推薦你學(xué)習(xí)Python并且使用RPy2來(lái)訪(fǎng)問(wèn)R語(yǔ)言的函數(shù)。你學(xué)習(xí)一種語(yǔ)言獲得了兩種能力。一旦你學(xué)習(xí)過(guò)RPy,再轉(zhuǎn)到純R語(yǔ)言也不是什么大問(wèn)題,但是,你想要反過(guò)來(lái)就沒(méi)那么容易了。
數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL 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)查詢(xún)效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話(huà)題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類(lèi)型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專(zhuān)業(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ù)全功能周期的專(zhuān)業(yè)操盤(pán)手 表格結(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)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤(pán)手 表格結(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ù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(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ì)” 與 “用戶(hù)體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷(xiāo)案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷(xiāo)成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類(lèi)分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場(chǎng)景中,聚類(lèi)分析作為 “無(wú)監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡(jiǎn)單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10