[問題]在資料處理與統計分析python or R?

作者: keepingJBJ (keep)   2016-06-20 03:47:31
各位前輩大家好
小弟本身是在做資料分析的工作
平常工作上使用的主要是SQL跟SAS
自己想學其他的 open source code 加強能力
不知道各位前輩對於做ETL or Data mining
比較推薦python還是R呢
小弟第一次發言
請大家提供小弟建議
謝謝
作者: bibo9901 (function(){})()   2016-06-20 11:08:00
Python已經夠慢了, R更是慢到無以復加...
作者: shadowjohn (轉角遇到愛)   2016-06-20 13:07:00
資料得處理再處理再處理再處理再去餵工具XD
作者: Neisseria (Neisseria)   2016-06-20 13:22:00
先評估函式庫/套件有沒有符合需求再來選語言語法上是 Python 比 R 簡單,但這往往不是最重要的點
作者: JackBaska (Baska)   2016-06-20 17:00:00
單資料整理 R 贏 Python , 如果你的資料是型態很雜且需要很前處理的話,我是推薦 R如果你的資料是大量數值,或是結構性還有coding狀況算好的資料,Python在校能上可以讓你做很多分析,而且速度非常快,像是我之前要在R上面生出一億個元素的亂數矩陣等超久,Python只要幾秒,看需求為主
作者: Wush978 (拒看低質媒體)   2016-06-20 17:19:00
R 的亂數產生器比較嚴謹。很多R 開發者的取捨,效能並不是最重要的。因為要說效能,python/R都呵呵
作者: JackBaska (Baska)   2016-06-20 17:34:00
是阿...可惜....全用Cpp爆開開發速度會崩潰我比較傾向先確定想法算法可以work,再考慮要不要刻
作者: keepingJBJ (keep)   2016-06-20 17:59:00
謝謝前輩們提供的建議,小弟就先從R開始學習,資料整理的效能對統計分析真的很重要
作者: bibo9901 (function(){})()   2016-06-20 18:02:00
用R就注定你的data大學永遠只能是玩具等級小另外可以給個"R的亂數產生器比較嚴謹"的 reference 嗎?
作者: Wush978 (拒看低質媒體)   2016-06-20 18:48:00
我用R在企業中處理一天破億筆的資料,並且架設推薦引擎R的dplyr後面接一層就可以直接串sparkSQLR的rng介紹: http://0rz.tw/uZRcI不過說回來,處理大數據,和用R,用python比較沒關係了解資料結構,演算法,作業系統等知識後,用什麼都一樣恩... 應該說,語言還是有差,但是不會是在R vs Python這種問題,而是java hadoop-like 等工具集合 v.s. 其他等這種層面上
作者: gozule (好冷啊~~)   2016-06-20 22:57:00
選python,需要速度就用cython加速我用cython+numpy寫算法,效能和純c的程式效能差異可以壓在10%以內
作者: gogogogo3333 (gogogogo33333)   2016-06-21 07:05:00
請問樓上大大,cpython 該如何入門呢?有推薦的ide嗎? 小弟目前是使用anaconda 下的spider ide
作者: JackBaska (Baska)   2016-06-21 09:06:00
go大。原po主需求是資料前處理還有ㄧ般統計分析,還有對非cs背景的親合度,整體來說R應該更適合,對非相關領域來說dplyr比pandas還有re親民許多不過我也想問cython入門
作者: gozule (好冷啊~~)   2016-06-21 10:49:00
cython只是把python加上type後編譯而已,重點是編譯後可以加速的幅度非常大,官網 http://cython.org/還有cython不是CPython,這是兩種不同的東西cython的寫法也很簡單,先把python程式寫好確定正確性後,就可以開始替變數加type,加好後編譯即可直接執行cython的IDE目前我只知pycharm pro有支援,學術用免費效能比較1 https://goo.gl/fCpr5l效能比較2 https://goo.gl/8hHZjd如果R能夠用llvm編譯執行也能很快,只是相關套件不成熟
作者: Neisseria (Neisseria)   2016-06-21 11:07:00
看了一下 g 大提供的 benchmark,覺得 Cython 蠻厲害的可以接近 C 和 Julia,但是相對好寫很多
作者: Wush978 (拒看低質媒體)   2016-06-21 20:02:00
(偏了) 要效能的話,試試看pypy吧,可能比cython更快而且不用改code,只是換interpreter
作者: os653   2016-06-21 20:54:00
PyPy 是比 Python 快不少啦,但是跟 C 比...
作者: uranusjr (←這人是超級笨蛋)   2016-06-21 21:10:00
PyPy 一般被認為在可以和 C 在同一個數量級喔, 完全可比
作者: gozule (好冷啊~~)   2016-06-22 01:03:00
pypy也是一個選項,只是對於numpy為主的套件似乎支援不完pypy官網一直都有在募集資金做numpy for pypy的portinghttp://pypy.org/numpydonate.html ,如果是以numpy開發為主,建議用cython, 如是純python的話,可以用pypy更省事。pypy套件列表 http://packages.pypy.org/
作者: svin (呼呼呼)   2016-06-22 01:15:00
新手想請教gozule大, 請問cython code裡可以使用python的其他package嗎?
作者: CaptainH (Cannon)   2016-06-22 02:12:00
pypy不能用scipy等package 太傷了而且個人經驗是:pypy 和 C/C++ 速度同個數量級的程式碼,此時Cpython也不會慢到哪去
作者: JackBaska (Baska)   2016-06-22 07:58:00
os大大 C很快但開發時間跟不上老闆的心啊
作者: gozule (好冷啊~~)   2016-06-22 13:49:00
cython裡面可以使用cpython的全部套件,也可以用c/c++開發的library,如TA-lib的wrapper https://goo.gl/G17vLb簡單的說,只要cpython能夠import的套件,cython通通能用

Links booklink

Contact Us: admin [ a t ] ucptt.com