R or Python,为了处理数据到底该学哪个?

版权声明:本文为博主原创文章,转载敬请作出引用声明方便相互交流学习! https://blog.csdn.net/sweeper_freedoman/article/details/51057979

     本文从个人的经历出发,谈谈对R和Python的认识,因本人刚刚毕业小学僧一枚工作资历尚浅,且R和Python基本上都是自学的只能算马马虎虎入门级别,所以文中所述仅仅小蛙井底之言。

     小僧最早接触的处理数据的工具是Excel,再后来依次是SPSS和Stata。Excel是大一计算机基础课学的。因本人不喜欢上课学习,所以课堂上基本上没学到什么,但自己喜欢倒腾电脑,因此业余还是掌握了不少技巧。小僧的第一份实习工作和正式工作(实习转正)最主要的工具就是Excel,这是第一个给我饭碗的强大工具,利用Excel公式和宏其实已经可以实现各种常规和非常规的数据处理需求。但总感觉逼格不高,Office软件在天朝给人的印象就是一种大众化的东西。这里插一件本人的轶事,在第一份实习时本人接到大阿里的电话面试,面试官问我现在工作中使用的开发工具是什么,我就回答是Excel,面试官一脸惊愕说没听清让我再回答一遍,我就重复说Excel,然后面试官说没有什么要问我了,然后就没有然后了。SPSS是大二学的,因为基本上没去上过课,因此对它的记忆仅仅停留在大二开过这门课,后来回过头研究过相关教程,但工作的时候也从来没用过就彻底压箱底了。接触的第三个处理数据的工具是Stata,没错,大三的课程!这个时候小僧已经迷途知返从不翘课,因此Stata是我在学校认真学过的一门工具,但最终命运跟SPSS一样,工作中没用过。

     扯了这么多,终于要等到主角之一R语言出场了。R语言是我读研阶段接触的,因为导师很推崇它,还有这门课。本科最后阶段冲刺了一下读了研,读研后又回到解放前,课堂上没怎么好好学,但基础还是掌握的。后来上文提到的第一份工作除了Excel另一个工具就是R了。早期就是R结合Excel做一些数据的简单处理,包括做做统计计算和画画图,小僧的论文也是借助R这个工具做了一个模型完成的。后来是通过R连接Hive从Hadoop里面提取数据,做一些简单的ETL之后存储到自用的MySQL数据仓库里出一些报表。在这个工程中我的R能力也得到了长足进步,这归功于度娘和各种博客论坛。当然,当时的老大也是比较喜欢使用R和研究R的,我的一本R参考书基本上是他拿过去放到他的桌子上的,还在上面画了各种道道。因为第一个饭碗工作并不是主要偏向于技术,小僧也想找一个能继续成长提高的地方,就在转正后最终决定离职。

     离职后小僧就开始接触本文的另一个主角Python了。小僧离职前就参加过同公司另一个部门的面试,当时面试官对我其他方面感觉还是不错的,但最后问到我会不会Python,我说没接触过,然后就没有结果了。离职后小僧在家休息了大概一个半月才到的现在的公司。这一个半月,小僧一边投简历一边在家韬光养晦。在这个过程中又坚定了小僧学Python的决心。小僧投的另一个很想去的职位和对方电面了大概一个小时,最后还是在Python上歇菜了。于是我就在家研究Python,也在自己的简历上偷偷的塞上了Python,不久又捞到一个很好的面试机会。面试时面试官提了一个很简单的逻辑处理的题,让我用Python写,但因为当时毕竟对Python是是而非,而且本能地一看到题目就想到了用R处理的方法。于是我尝试用R笨拙地处理了一下,当时紧张了一下,结果也是跪了。其间翻招聘网站再投了一些R相关的招聘岗位,但一方面这种岗位本来就少,另一方面我对工作地域有限定,基本上都石沉大海了。再后来小僧经同学内推进入某软件公司,在某项目组做运维,维护数据库和做报表开发。入职后小僧本来想继续使用R语言,但了解后才发现我是他们招的第一个会R的,而且他们未来估计也不会再招用R的。按照PM的说法,R是一个小语种,可迁移性和替换性太小,如果我走了我的工作其他人无法交接。最终,在他的要求下,我开始真正在工作中使用Python。当然,我这个岗位的“前任”留给我的“遗产”也是若干Python脚本。至此开始,我一有空就继续自学Python,慢慢地Python也取代了R在我心中的位置。

     写到这里,应该做一下对R和Python的介绍。虽然如果大家接触和使用其一或者其二的话,当然比小僧更熟悉。“R是一个用于统计计算和制图的免费软件环境”,这来自小僧对R官网首页(https://www.r-project.org/)定义的拙劣自译。“Python是一个让你的工作快捷,集成系统更加有效的编程语言”,同样来自小僧对Python官网首页(https://www.python.org/)定义的拙劣自译。对比之下就非常明确了,R擅长的是统计分析,纯粹和局限;Python就是编程语言。实际使用中,R有它自己的优势,那就是各种强大且数不胜数的统计包,可以实现包括经典统计和现代机器学习在内的各种数据分析需求,因为它的open source,程序能得到很好地维护和扩展,另外,它的绘图能力也不容小觑。Python也是开源的,实现数理统计主要是借助一些第三方包,例如pandas、scikit-learn、statsmodels和matplotlib等。这些包基本上囊括了常用的统计模型,如果要做数据分析,简单地去看看官方文档熟悉一下它们的API,也基本上能很快掌握。因此,就涉及到一个二者哪个好学一点的问题。就我而言觉得Python更好学一点。也许是因为Python学的晚起点好一点已经有一定的基础,而且是在工作中学以致用用中而学,前面讲过学R是在课堂上心猿意马的环境下。当然,另外一个原因其实就是两种语言各自的特点,Python语言一个很大的特点就是代码简洁而又格式严格,可读性很强。

     最后,回到文章的正题上,为了处理数据到底该学哪门语言。这个其实要因人而异了,而且小僧也不能妄下结论。当你在用最前沿的技术大费周折做完对数据的处理却没有得到老板想要的东西的时候,也许真正的大神已经用Excel完成了数据挖掘。所以,工作中哪种工具方便快捷又能很好地实现需求,就学它用它。就个人经历而言,Python毕竟是一门编程语言,它既能是R又能是Python;相反地,R只能是R而不能是Python。所以,如果是一个计算机专业的学生或者以程序猿为人生理想,当然学Python了。如果是其他行业,而且工作性质更偏向于数据分析,有R就足够了。


阅读更多
换一批

没有更多推荐了,返回首页