Python和R语言的区别

数据挖掘技术日趋成熟和复杂,随着互联网发展以及大批海量数据的到来,之前传统的依靠spss、SAS等可视化工具实现数据挖掘建模已经越来越不能满足日常需求,依据美国对数据科学家(data scientist)的要求,想成为一名真正的数据科学家,编程实现算法以及编程实现建模已经是必要条件;目前很多从事数据挖掘工作的人,大多都是出身非计算机专业,本身对编程基础比较低,所以找到一门快速上手而又高效的编程语言是至关重要的,好的工具和编程语言可以起到事半功倍的效果。

目前在数据挖掘算法方面用的最多的编程语言有:Java、C++、C、Python、R等等 

由于笔者本身属于数理统计出身,复杂而高级的语言对我来说性价比并不高,所以想从头对Java、C++、C开始学起,浪费的时间和精力与收获明显不成正比。所以Python和R语言成了最佳选择。对于同样和我背景相似的数据从业人员,我强烈推荐从这两者选择其一。

原因有三:
第一:Python和R本身在数据分析和数据挖掘方面都有比较专业和全面的模块,很多常用的功能,比如矩阵运算、向量运算等都有比较高级的用法,所以使用起来产出比大;

第二:这两门语言对于平台方面适用性比较广,linux、window都可以使用,并且代码可移植性还算不错的。

第三:对于学数理统计的人来说,应该大多用过MATLAB以及mintab等工具,Python和R比较贴近这些常用的数学工具,使用起来有种亲切感

至于Python和R两者如何选择,本人有点粗浅认识:

这两个工具都很方便,不需要非常高深的编程能力,都适合算法开发,有大量的package供你使用。 

Python入门简单,而R则相对比较难一些(纯个人感觉,依据每个人之前的经验,可能不同的体验)。
       R做文本挖掘现在还有点弱,当然它的优点在于函数都给你写好了,你只需要知道参数的形式就行了,有时候即使参数形式不对,R也能“智能地”帮你适应。这种简单的软件适合想要专注于业务的人。
Python几乎都可以做,函数比R多,比R快。它是一门语言,R更像是一种软件,所以python更能开发出flexible的算法。

Python适合处理大量数据,而R则在这方面有很多力不从心,当然这么说的前提是对于编程基础比较一般的童鞋,对于大牛来说,多灵活运用矢量化编程的话,R的速度也不会太差。

论性能,Python介于C/C++/Java这些高级语言与R语言之间,虽然性能不及那些高级语言,但是一般日常的数据用Python基本都能实现,对于性能要求不挑剔的人来说,足够了

python 你需要安装numpy,pandas,scipy,cython,statsmodels,matplotlib 等一系列的程序包,还需要安装ipython交互环境,单独用python直接做计量分析统计函数是没有函数支持的;R是基于统计分析的,性能和效率上要略逊于python。R的优势在于统计学和数据计算和分析上要优越于python。

Python语言编程的代码可读性高,整体美观,属于简单粗暴性质的,短时间内少量代码可实现复杂功能;R的语法很奇怪,各种包并不遵守语法规范,导致使用起来经常感觉蛋疼;R程序最终看起来没有Python那么简洁美观。

从全面性方面,我认为Python的确胜过R。无论是对其他语言的调用,和数据源的连接、读取,对系统的操作,还是正则表达和文字处理,Python都有着明显优势。毕竟,python本身是作为一门计算机编程语言出现的,而R本身只是源于统计计算。所以从语言的全面性来说,两者差异显著。

python是machine learning领域的人用的较多。据我所知,做marketing research, econometrics, statistics的人几乎没有用python的
当然了,现在学编程比以前可简单了多了。有句话不是这么说的么,“我不生产代码,我只是stackoverflow的搬运工”。。。
以上仅仅是个人感悟,如表述不当,欢迎指出,拍砖的手下留情哦

已标记关键词 清除标记
【为什么学PythonPython 是当今非常热门的语言之一,2020年的 TIOBE 编程语言排行榜中 ,Python名列第一,并且其流行度依然处在上升势头。 在2015年的时候,在网上还经常看到学Python还是学R的讨论,那时候老齐就选择了Python,并且开始着手出版《跟老齐学Python》。时至今日,已经无需争论。Python给我们带来的,不仅仅是项目上的收益,我们更可以从它“开放、简洁”哲学观念中得到技术发展路线的启示。 借此机会,老齐联合CSDN推出了本课程,希望能影响更多的人走进Python,踏入编程的大门。 【课程设计】 本课程共包含三大模块: 一、基础知识篇 内置对象和基本的运算、语句,是Python语言的基础。本课程在讲解这部分知识的时候,不是简单地将各种知识做简单的堆砌,而是在兼顾内容的全面性的同时,更重视向学习者讲授掌握有关知识的方法,比如引导学习者如何排查错误、如何查看和理解文档等。   二、面向对象篇 “面向对象(OOP)”是目前企业开发主流的开发方式,本课程从一开始就渗透这种思想,并且在“函数”和“类”的学习中强化面向对象开发方式的学习——这是本课程与一般课程的重要区别,一般的课程只在“类”这里才提到“对象”,会导致学习者茫然失措,并生畏惧,乃至于放弃学习。本课程则是从开始以“润物细无声”的方式,渗透对象概念,等学习到本部分的时候,OOP对学习者而言有一种“水到渠成”的感觉。   三、工具实战篇 在项目实战中,除了前述的知识之外,还会用到很多其他工具,至于那些工具如何安装?怎么自己做工具?有那些典型工具?都是这部分的内容。具体来说,就是要在这部分介绍Python标准库的应用以及第三方包的安装,还有如何开发和发布自己的工具包。此外,很多学习Python的同学,未来要么从事数据科学、要么从事Web开发,不论哪个方向,都离不开对数据库的操作,本部分还会从实战的角度,介绍如何用Python语言操作常用数据库。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页