Rumah > pembangunan bahagian belakang > Tutorial Python > r语言和python的详细对比

r语言和python的详细对比

爱喝马黛茶的安东尼
Lepaskan: 2019-06-15 13:17:10
asal
14315 orang telah melayarinya

r语言和python的对比,两者各有千秋,究竟要学哪一个,可根据自己的实际需求来作出选择,当然,最好是两者都学。

相关推荐:《python视频

r语言和python的详细对比

01 开发目的

R语言

R是由统计学家开发的,它的出生就肩负着统计分析、绘图、数据挖掘的重要使命。因此在R的语言体系里,有非常多统计学的原理和知识。

如果你具备一些统计背景,R会令你使用各类model和复杂的公式时更加愉悦有爽感,因为你总能找到对应的package,并且几行代码就可以调用搞定。

Python

Python的创始人初衷,是为非专业程序员设计的一种开放型的语言。优雅,明确,简单,是它的标签。因此,总有人高唱「人生苦短,我用Python」。

数据分析、网络爬虫、编程开发、人工智能等,作为一门多功能的胶水语言,Python的使用目的和学习路径更加多样化。

02 适用人群

尽管都是数据科学界的当红炸子鸡,工具的选择会因为你的领域和你想解决的问题因人而异。

R语言

起初R在学术研究和调查工作中使用比较多,逐渐延伸至企业商业界。使用人群不一定需要计算机背景,统计、金融、经济、核电、环境、医疗、物流管理,乃至人文学科,都有R语言的立足之地。

同样,鉴于R 在数据探索、统计分析上,是一种更高效的独立数据分析工具,具备良好数理统计知识背景的人使用起来更加得心应手,自带base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块等。

Python

相比R非标准的代码,Python作为出了名的语法简洁工具,对于一些稍有编程基础的人来说格外友好,可以减少在编程进程中的磕绊。

没有任何基础的编程小白一样可以上手Python,适用范围同样覆盖金融、医疗、管理、传播等各行各业。

如果你在数据分析之余,还需要与诸如Web应用程序相整合,或者需要和数据源的连接、读取,调用其他语言等,使用Python是更加方便的选择,「一站式解决」。

03 学习曲线

这是小白入门前最关心的问题之一,究竟哪个学起来更难?

实际上,由于不了解每个人的知识背景和学习成本,这个问题并不能做出非黑即白的绝对性答案。这也是为什么,各类论坛上R和Python的使用者关于入门难度总是各执一词。

R语言

开始学习R,了解了最基本知识和语言逻辑,入门不难。以及数理统计基础好的会越学越爽,相反,如果完全没有数理背景,会感觉到明显增幅的难度。

Python

Python看重可读性和易用性,它的学习曲线比较平缓。对于初级小白来讲,比较友好,但如果纵深学习以及拓展方向,还需要掌握大量package的知识和使用方法。

如果你真的需要定义对比二者学习曲线的难度,你需要首先明确,你的学习目的是什么。

04 行业选择&发展方向

网络上有很多R与Python人气对比的数据,综合来看,Python的排名更高,主要原因是R仅在数据科学的环境中使用,而Python作为一种通用语言,使用广泛。

R语言

应用R的场景:数据探索、统计分析、数据可视化

应用 R技能的职位:数据分析师、数据科学家、投资分析师、税务人员、管理人员、科研人员等等

发展方向:结合各行业的专业知识,做深度的业务数据处理与统计分析

Python

应用Python的场景:数据分析、网络爬虫、系统编程、图形处理、文本处理、数据库编程、网络编程、Web编程、数据库连接、人工智能、机器学习等

应用Python的职位:数据架构师、数据分析师、数据工程师、数据科学家、程序开发员等

发展方向:结合各行业的专业知识,做各类型or协作型工作

05 优缺点对比分析

来了!在具体的使用中,两个工具一定有各自的优劣势,各自的侧重点。明确哪一点对你最重要,是你选择的关键。

数据可视化 

字不如表,表不如图。R和可视化是绝配,一些必备的可视化软件包如ggplot2,ggvis,googleVis和rCharts,由于统计模型完善,细节设计精美,在R里能够使用一行或几行代码很快完成漂亮大气装X一百分的数据图,清楚看到数据的特征和走势。

Python也有一些不错的可视化库,诸如Matplotlib, Seaborn,Bokeh和Pygal,它同样可以完成和R一样精美的数据图,但需要你自己写代码去表达和定义,例如线形图、柱状图,横纵坐标的距离与比例,颜色的选择等等。

数据分析 

R包含更多的数据分析内建功能,可以直接使用summary内建函数,dataframe是R内置的结构。

Python中需要依靠第三方软件包,诸如statsmodels、pandas包,提供强大的数据分析功能。

数据结构 

R中的数据结构非常的简单,主要包括向量(一维)、多维数组(二维时为矩阵)、列表(非结构化数据)、数据框(结构化数据)。R的变量类型比较单一,在不同的包里变量类型是一样的。

Python 则包含更丰富的数据结构来实现数据更精准的访问和内存控制,多维数组(可读写、有序)、元组(只读、有序)、集合(重复性、无序)、字典(Key-Value)等等。在不同的包里,也会有不同的表达来定义变量,例如在pandas包里用series表示列表,而在numpy包里列表的表达则使用array。

相比来说,Python更丰富的数据结构会提升学习成本,但运行更精准,速度也更快。

运行速度 

R的运行速度比较慢,在大样本的回归中,如使用不当就会出现内存不足的情况。通常,需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析。或者和其他大数据处理工具结合起来,例如spark。

Python虽然没有C的运行快,但与R相比,还是非常有优势的,可以直接处理上G的数据,并且在非常大的数据运算上的准确性也更好一些。

帮助文档与自学成本 

相比于使用人群更广泛的Python,R的帮助文档相对不够细致和完善,通常附带的栗子也比较简洁,有一些大致的讲解和用法。

而Python的代码语句、例子展示、参数分析等细节展示比较完善,撰写帮助文档的人更多会出示一个完整的demo,因而对于自学的人来说比较友好。

此外,Python是一种通用的语言,你可以与小伙伴共享Notebook,而无需他们安装任何东西,更重要的是,可以把不同背景的人集合在一起,灵活性强,扩展性好,多功能工作,也极有可能碰撞出更多思维火花。

例子 

文本信息挖掘,是一种常见的数据处理与分析使用场景,比如说电商网购的评价,社交网站的标签,新闻里的情感分析等等。

使用R做情感分析时,需要对数据进行预处理,清除掉没用的符号后,做分词。然后构建单词-文档-标签数据集-创建文档-词项矩阵,再借助各类包来进行机器学习算法。

由于情感分析的文本通常是一个非常规模化的数据,在R里相对处理速度比较慢,并且需要使用多个包来协作。

使用Python做情感分析时,优先需要将句子分解为单词,然后操作特征提取,去除停用词;接下来降维,再进行分类算法模型训练和模型评估

Python的包集成性很强,尤其对于文本挖掘情感分析这个问题来讲,可以更快更简便地完成这个操作。 

时间序列分析,是根据系统观察得到的时间序列数据,通过曲线拟合和参数估计来建立数学模型的理论和方法,可以用在金融领域、气象预测、市场分析领域等。

使用R语言做时序分析时,因为R拥有许多程序包可用于处理规则和不规则时间序列,因而很有优势,比如library(xts),library(timeSeires),library(zoo)—时间基础包,library(FinTS)--调用其中的自回归检验函数等,出具的结果也非常直观和清晰。

使用Python做时序分析时,由于没有特别完善的时序分析包,没有专门为了做预测而写的方程,和可视化一样,需要操作者自行写更多的代码。常用的,statsmodels模块,该模块可以用来进行时间序列的差分,建模和模型的检验。

通过以上两个栗子你感受到了吗!

工具不分好坏,是因为你具体想要解决的问题而异的。

Atas ialah kandungan terperinci r语言和python的详细对比. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan