Python與R語言的簡(jiǎn)要對(duì)比
數(shù)據(jù)挖掘技術(shù)日趨成熟和復(fù)雜,隨著互聯(lián)網(wǎng)發(fā)展以及大批海量數(shù)據(jù)的到來,之前傳統(tǒng)的依靠spss、SAS等可視化工具實(shí)現(xiàn)數(shù)據(jù)挖掘建模已經(jīng)越來越不能滿足日常需求,依據(jù)美國對(duì)數(shù)據(jù)科學(xué)家(data scientist)的要求,想成為一名真正的數(shù)據(jù)科學(xué)家,編程實(shí)現(xiàn)算法以及編程實(shí)現(xiàn)建模已經(jīng)是必要條件;目前很多從事數(shù)據(jù)挖掘工作的人,大多都是出身非計(jì)算機(jī)專業(yè),本身對(duì)編程基礎(chǔ)比較低,所以找到一門快速上手而又高效的編程語言是至關(guān)重要的,好的工具和編程語言可以起到事半功倍的效果。
目前在數(shù)據(jù)挖掘算法方面用的最多的編程語言有:Java、C++、C、Python、R等等
R語言作為統(tǒng)計(jì)界第一語言(軟件),很多時(shí)候與我們號(hào)稱分析界第一語言的Python老是被人拿起來對(duì)比,所以今天專門做了一個(gè)表格,簡(jiǎn)介一下R語言與Python語言的對(duì)比情況。
首先還是我Python神圖壓鎮(zhèn):

首先介紹一下R語言吧:
有個(gè)小段子,說為什么要叫R語言呢?就是因?yàn)閮晌粍?chuàng)始人的名字,都是以"R"開頭的,所以,干脆一拍即合,就叫R語言吧……

R語言有很多的特點(diǎn)……當(dāng)然,看這張圖,是不是覺得很眼熟啊,沒錯(cuò),如果看過以前那篇“Python大法好”的文章的同學(xué),發(fā)現(xiàn),R語言怎么和Python的特性這么相似捏?

其實(shí)R也有很多自己特性,下面是它最顯著的幾個(gè)特性:
1、就是命令模式。Python雖然也支持命令模式,但是相對(duì)來說,更偏向于流程控制語句,也就是可以寫一堆語句,然后執(zhí)行。R本身基本上不需要用到流程控制(當(dāng)然,它也支持流程控制)。
2、就是交互性。這樣是命令模式的一個(gè)特點(diǎn),敲回車,出結(jié)果。但是又不像SPSS那種用鼠標(biāo)扎針的交互方式(在鍵盤上運(yùn)指如飛逼格瞬間提升很多……好萊塢大片里面,高手黑客都是不用鼠標(biāo)的,當(dāng)然,這樣很合理,SSH或者Telent到遠(yuǎn)程服務(wù)器上,怎么鼠標(biāo)?)
3、也是R語言最大的特點(diǎn),統(tǒng)計(jì)學(xué)特性……好吧R語言與其他所有計(jì)算機(jī)語言最大的本質(zhì)區(qū)別,就是它是一門統(tǒng)計(jì)學(xué)家發(fā)明的語言(其他語言,基本上都是碼農(nóng)發(fā)明的,當(dāng)然,也有數(shù)學(xué)家發(fā)明的),那么就有很多神奇特點(diǎn)。
比如:賦值的時(shí)候,不用等號(hào)(=),用的是指向(<-),帶來的問題就是要寫a<-5
這種語句,就需要a<(-5)這樣寫。
比如對(duì)象下面的屬性,不用點(diǎn)(.),而是用刀樂($)。當(dāng)然,點(diǎn)也能用,但是又帶來各種問題,比如R語言的變量命名法則不用遵循匈牙利法則……可以用中文啊有木有:

最反人類(反(程序)猿類)的設(shè)計(jì),就是它的數(shù)組下標(biāo)從1開始啊有木有?。∷械某绦蛘Z言都是從0開始的有木有?。?!
最后就是內(nèi)存問題:R語言被要求把所有數(shù)據(jù)都加載到內(nèi)存里面去進(jìn)行運(yùn)行……我賣噶!!現(xiàn)在動(dòng)輒GB沒事就TB就數(shù)據(jù),作死要不要做得這么徹底?(當(dāng)然,現(xiàn)在Spark也支持R了……這是一個(gè)好消息,大家都是內(nèi)存計(jì)算,難兄難弟啊)
最后貼出我Python大法與R大法的對(duì)比圖:

詳細(xì)指標(biāo)項(xiàng)如下:
Python程序猿經(jīng)常說的一句話:別看我們運(yùn)行慢,但是我們寫得快啊……但是這個(gè)對(duì)比R就沒優(yōu)勢(shì)了,R的代碼量比Python更少……當(dāng)然,是比R能夠完成的任務(wù)的情況下。
實(shí)際上這種對(duì)比并沒有太大的意義,比較硬要說R是一種語言,還不如說它更像是一個(gè)分析工具,是一個(gè)軟件……而Python是一個(gè)支持大型軟件工程項(xiàng)目的開發(fā)語言(不信,你用R寫個(gè)web網(wǎng)站我看看……Python就可以。)

總結(jié)
以上就是本文關(guān)于Python與R語言的簡(jiǎn)要對(duì)比的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
python+opencv實(shí)現(xiàn)的簡(jiǎn)單人臉識(shí)別代碼示例
python實(shí)現(xiàn)圖片處理和特征提取詳解
如有不足之處,歡迎留言指出。
- R語言中的vector(向量),array(數(shù)組)使用總結(jié)
- R語言的下載安裝圖文教程講解
- R語言是什么 R語言簡(jiǎn)介
- R語言入門之安裝R和Rstuido軟件
- R語言dplyr包之高效數(shù)據(jù)處理函數(shù)(filter、group_by、mutate、summarise)詳解
- 詳解R語言中的PCA分析與可視化
- 詳解R語言中的多項(xiàng)式回歸、局部回歸、核平滑和平滑樣條回歸模型
- 詳解R語言中生存分析模型與時(shí)間依賴性ROC曲線可視化
- R語言利用loess如何去除某個(gè)變量對(duì)數(shù)據(jù)的影響詳解
- R語言 vs Python對(duì)比:數(shù)據(jù)分析哪家強(qiáng)?
- 簡(jiǎn)述:我為什么選擇Python而不是Matlab和R語言
- R語言判斷語句的使用詳解
相關(guān)文章
PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample?Dropout方式
這篇文章主要介紹了PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample?Dropout方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Python?中的裝飾器實(shí)現(xiàn)函數(shù)的緩存(場(chǎng)景分析)
Python中的裝飾器可以用于實(shí)現(xiàn)函數(shù)的緩存,其原理是在函數(shù)執(zhí)行前,首先判斷傳入的參數(shù)是否在緩存中已經(jīng)存在對(duì)應(yīng)的計(jì)算結(jié)果,這篇文章主要介紹了Python?中的裝飾器可以用于實(shí)現(xiàn)函數(shù)的緩存,需要的朋友可以參考下2023-02-02
Python使用pyglet庫完整實(shí)現(xiàn)漢諾塔游戲流程詳解
這篇文章主要介紹了Python使用pyglet庫完整實(shí)現(xiàn)漢諾塔游戲流程,漢諾塔問題是一個(gè)遞歸問題,也可以使用非遞歸法來解決,這個(gè)問題不僅是一個(gè)數(shù)學(xué)和邏輯問題,也是一個(gè)很好的教學(xué)工具,可以用來教授遞歸、算法和邏輯思考等概念,需要的朋友可以參考下2007-02-02
python學(xué)習(xí)Selenium介紹及安裝部署詳解
這篇文章主要為大家介紹了python學(xué)習(xí)中Selenium介紹以及如何安裝部署的詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10
python 如何在list中找Topk的數(shù)值和索引
這篇文章主要介紹了python 如何在list中找Topk的數(shù)值和索引的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
Python基于聚類算法實(shí)現(xiàn)密度聚類(DBSCAN)計(jì)算【測(cè)試可用】
這篇文章主要介紹了Python基于聚類算法實(shí)現(xiàn)密度聚類(DBSCAN)計(jì)算,結(jié)合實(shí)例形式分析了聚類算法的相關(guān)概念、原理及使用聚類算法進(jìn)行密度聚類計(jì)算的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12

