當前位置:編程學習大全網 - 源碼下載 - vs 和 python 分析數據 哪個好

vs 和 python 分析數據 哪個好

總的概括:R主要在學術界流行,python(numpy scipy)在工程方便比較實用。

R是S(Splus)的開源版本,或者下壹代。發源地在新西蘭奧克蘭。這個軟件的統計背景很濃烈。我這裏濃烈的意思是,如果妳不熟習統計知識(歷史)的話,R的幫助文檔看起來是很累的。由統計背景的人開發。R的維護組叫CRAN-R。在生物信息方便,有個叫bioconductor的組織,裏面有很多生物信息方面可以用的軟件包,他們有壹套自己維護package系統。

Python是個綜合語言(這裏特指指CPython解釋器),numpy scipy是數值計算的擴展包,pandas是主要用來做數據處理(numpy依賴),sympy做符號計算(類似mathematica?)此外還有壹些不太成熟的包如sciki learn,statistical models。成熟度不如R。但是已經到了可用的水平了。是讀計算機的人寫的統計包。ipython 更新到1.0以後,功能基本完善,其notebook非常強大(感覺就像mathematica)而且還是基於web,在合作分享方面非常好用。

性能:

大家都說R慢,特別是CS的人。其實這裏主要是兩點:壹個R裏面數組的調用都是用復制的,二是Rscript慢。三是處理大數據慢。如果R用的好的話,R是不太慢的。具體來說就是Rscript用的少,多用命令,跑點小數據。這樣的話,實際在跑的都是背後的fortran和C庫。他們都有快二三十年歷史了。可謂異常可靠,優化得不能再優化了(指單線程,如果去看源代碼揮發先許多莫名的常數,永用了以後精度高速度快!)。比如壹個自己編寫壹個R腳本,loop套loop的那種,那真是想死的心都會有。外加壹點,R處理文本文件很慢!

Python歸根揭底還是個有解釋器的腳本語言,而且有致命傷——GIL,但python最難能可貴的就是它很容易變得更快。比如pypy,cython,或者直接ctypes掛C庫。純python寫個原型,然後就開是不斷的profiling和加速吧。很輕易可以達到和C壹個數量級的速度,但是寫程序、調試的時間少了很多。

並行計算:

R v15 之後有了自帶的parallel包,用挺輕松的。不過其實就是不停的fork,或者mpi,內存消耗挺厲害的。parSapply,parApply什麽的,真是很好用。

Python雖然有GIL——並行計算的死敵,但是有multiprocessing(fork依賴) ,是可以***享數據的什麽的,估計內存消耗方面比R好點,數據零散的話overhead很多。到了MPI的話,mpi4py還是挺好用的。用cython的話結合openmp可以打破GIL,但是過程中不能調用python的對象。

學習曲線:假設什麽編程都不會的同學。

R壹開始還是很容易上手的,查到基本的命令,包,直接print壹下就有結果了。但是如果要自己寫算法、優化性能的時候,學習難度陡增。

Python麽,挺好學的,絕大多數的幫助文檔都比R好了許多。有些包用起來沒R方便。總的來說深入吼R陡。

擴展資源:

基本上新的統計方法都會有R的package,安裝實用都不麻煩。但是基本上都是搞統計的人寫的計算機包。所以效能上可能有問好。比較出名的有兩個包的管理網站,cran-r 和bioconductor。 所以搞生化的估計R用起來很方便。

python的統計計算包們比R少,多很年輕,還在不斷的開發中。優於是計算機人寫的統計包,用起來的時候要多漲個心眼。

畫圖:

R自帶的那些工具就挺好用了,然後還有ggplot這種非常優美的得力工具。

python 有matplotlib,畫出來效果感覺比R自帶的好壹些些,而且界面基於QT,跨平臺支持。可能是R用得多了,pyplot用起來還是不太順手,覺得其各個組建的統壹性不高。

IDE:

Rstudio非常不錯,提供類matlab環境。(用過vim-r-plugin,用過emacs + ess現在用vim。)

windows 下有python(x,y) 還有許多商業的工具。(本人現在的emacs環境還不是很順手~)

建議:

如果只是處理(小)數據的,用R。結果更可靠,速度可以接受,上手方便,多有現成的命令、程序可以用。

要自己搞個算法、處理大數據、計算量大的,用python。開發效率高,壹切盡在掌握。

ps:盲目地用R的包比盲目的地用python的包要更安全。起碼R會把妳指向壹篇論文,而python只是指向壹堆代碼。R出問題了還有論文作者、審稿人陪葬。

  • 上一篇:全新奔馳C級渲染圖曝光 充滿科技感的“小S級”即將到來
  • 下一篇:倒掛金鐘的形態特征
  • copyright 2024編程學習大全網