Python與R語言的簡要對比
數(shù)據(jù)挖掘技術(shù)日趨成熟和復雜,隨著互聯(lián)網(wǎng)發(fā)展以及大批海量數(shù)據(jù)的到來,之前傳統(tǒng)的依靠spss、SAS等可視化工具實現(xiàn)數(shù)據(jù)挖掘建模已經(jīng)越來越不能滿足日常需求,依據(jù)美國對數(shù)據(jù)科學家(data scientist)的要求,想成為一名真正的數(shù)據(jù)科學家,編程實現(xiàn)算法以及編程實現(xiàn)建模已經(jīng)是必要條件;目前很多從事數(shù)據(jù)挖掘工作的人,大多都是出身非計算機專業(yè),本身對編程基礎(chǔ)比較低,所以找到一門快速上手而又高效的編程語言是至關(guān)重要的,好的工具和編程語言可以起到事半功倍的效果。
目前在數(shù)據(jù)挖掘算法方面用的最多的編程語言有:Java、C++、C、Python、R等等
R語言作為統(tǒng)計界第一語言(軟件),很多時候與我們號稱分析界第一語言的Python老是被人拿起來對比,所以今天專門做了一個表格,簡介一下R語言與Python語言的對比情況。
首先還是我Python神圖壓鎮(zhèn):
首先介紹一下R語言吧:
有個小段子,說為什么要叫R語言呢?就是因為兩位創(chuàng)始人的名字,都是以"R"開頭的,所以,干脆一拍即合,就叫R語言吧……
R語言有很多的特點……當然,看這張圖,是不是覺得很眼熟啊,沒錯,如果看過以前那篇“Python大法好”的文章的同學,發(fā)現(xiàn),R語言怎么和Python的特性這么相似捏?
其實R也有很多自己特性,下面是它最顯著的幾個特性:
1、就是命令模式。Python雖然也支持命令模式,但是相對來說,更偏向于流程控制語句,也就是可以寫一堆語句,然后執(zhí)行。R本身基本上不需要用到流程控制(當然,它也支持流程控制)。
2、就是交互性。這樣是命令模式的一個特點,敲回車,出結(jié)果。但是又不像SPSS那種用鼠標扎針的交互方式(在鍵盤上運指如飛逼格瞬間提升很多……好萊塢大片里面,高手黑客都是不用鼠標的,當然,這樣很合理,SSH或者Telent到遠程服務(wù)器上,怎么鼠標?)
3、也是R語言最大的特點,統(tǒng)計學特性……好吧R語言與其他所有計算機語言最大的本質(zhì)區(qū)別,就是它是一門統(tǒng)計學家發(fā)明的語言(其他語言,基本上都是碼農(nóng)發(fā)明的,當然,也有數(shù)學家發(fā)明的),那么就有很多神奇特點。
比如:賦值的時候,不用等號(=),用的是指向(<-),帶來的問題就是要寫a<-5
這種語句,就需要a<(-5)這樣寫。
比如對象下面的屬性,不用點(.),而是用刀樂($)。當然,點也能用,但是又帶來各種問題,比如R語言的變量命名法則不用遵循匈牙利法則……可以用中文啊有木有:
最反人類(反(程序)猿類)的設(shè)計,就是它的數(shù)組下標從1開始啊有木有!!所有的程序語言都是從0開始的有木有?。?!
最后就是內(nèi)存問題:R語言被要求把所有數(shù)據(jù)都加載到內(nèi)存里面去進行運行……我賣噶!!現(xiàn)在動輒GB沒事就TB就數(shù)據(jù),作死要不要做得這么徹底?(當然,現(xiàn)在Spark也支持R了……這是一個好消息,大家都是內(nèi)存計算,難兄難弟?。?/p>
最后貼出我Python大法與R大法的對比圖:
詳細指標項如下:
Python程序猿經(jīng)常說的一句話:別看我們運行慢,但是我們寫得快啊……但是這個對比R就沒優(yōu)勢了,R的代碼量比Python更少……當然,是比R能夠完成的任務(wù)的情況下。
實際上這種對比并沒有太大的意義,比較硬要說R是一種語言,還不如說它更像是一個分析工具,是一個軟件……而Python是一個支持大型軟件工程項目的開發(fā)語言(不信,你用R寫個web網(wǎng)站我看看……Python就可以。)
總結(jié)
以上就是本文關(guān)于Python與R語言的簡要對比的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
python+opencv實現(xiàn)的簡單人臉識別代碼示例
如有不足之處,歡迎留言指出。
- R語言中的vector(向量),array(數(shù)組)使用總結(jié)
- R語言的下載安裝圖文教程講解
- R語言是什么 R語言簡介
- R語言入門之安裝R和Rstuido軟件
- R語言dplyr包之高效數(shù)據(jù)處理函數(shù)(filter、group_by、mutate、summarise)詳解
- 詳解R語言中的PCA分析與可視化
- 詳解R語言中的多項式回歸、局部回歸、核平滑和平滑樣條回歸模型
- 詳解R語言中生存分析模型與時間依賴性ROC曲線可視化
- R語言利用loess如何去除某個變量對數(shù)據(jù)的影響詳解
- R語言 vs Python對比:數(shù)據(jù)分析哪家強?
- 簡述:我為什么選擇Python而不是Matlab和R語言
- R語言判斷語句的使用詳解
相關(guān)文章
PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample?Dropout方式
這篇文章主要介紹了PyTorch使用Tricks:Dropout,R-Dropout和Multi-Sample?Dropout方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02Python?中的裝飾器實現(xiàn)函數(shù)的緩存(場景分析)
Python中的裝飾器可以用于實現(xiàn)函數(shù)的緩存,其原理是在函數(shù)執(zhí)行前,首先判斷傳入的參數(shù)是否在緩存中已經(jīng)存在對應(yīng)的計算結(jié)果,這篇文章主要介紹了Python?中的裝飾器可以用于實現(xiàn)函數(shù)的緩存,需要的朋友可以參考下2023-02-02Python使用pyglet庫完整實現(xiàn)漢諾塔游戲流程詳解
這篇文章主要介紹了Python使用pyglet庫完整實現(xiàn)漢諾塔游戲流程,漢諾塔問題是一個遞歸問題,也可以使用非遞歸法來解決,這個問題不僅是一個數(shù)學和邏輯問題,也是一個很好的教學工具,可以用來教授遞歸、算法和邏輯思考等概念,需要的朋友可以參考下2007-02-02python 如何在list中找Topk的數(shù)值和索引
這篇文章主要介紹了python 如何在list中找Topk的數(shù)值和索引的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python基于聚類算法實現(xiàn)密度聚類(DBSCAN)計算【測試可用】
這篇文章主要介紹了Python基于聚類算法實現(xiàn)密度聚類(DBSCAN)計算,結(jié)合實例形式分析了聚類算法的相關(guān)概念、原理及使用聚類算法進行密度聚類計算的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12