[问题]在资料处理与统计分析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