R vs Python:R是此刻最好的数据科学语言吗?
在前一段时间的博客中,我表明白为什么你应该把握 R 语言(即便它最终大概过期):http://sharpsightlabs.com/blog/master-r-obsolete/。我写这篇文章是为了向那些声称把握 R 语言挥霍时间的人致辞。(因为它最终会变得过期)。
可是当我认为 R 语言最终会变得过期时,这好像引起了惊骇——似乎 R 语言已颠末期了。
我想要消除你的惊骇:R 语言仍然很风行。
R 语言是已往十年中成长最快的编程语言之一。
事实上,假如你开始进修数据科学,我仍然推荐从 R 语言开始。
所以,我想向你担保。R 语言没有过期的。事实上,R 语言长短常受接待的并且是较好的数据语言。
为此,我想表明为什么我对 R 语言的恒久前景很是乐观,以及为什么我认为这也许是本日可以进修的较好的数据科学语言。
R 语言始终是较好的语言之一
我想让你们大白的一件工作是:今朝 R 语言是存在的更受尊敬、排名较高、增长最快的语言之一。
在许多方面,R 语言就代表了数据语言。在数据科学规模,这是一个仍处于顶端的语言(只有 1 到 2 个真正的竞争者)。
为什么这么说呢?让我们看看几个重要的观测和编程语言排名的功效,看看 R 语言排在那边。
IEEE:R 语言排名第 5
世界上较大的技能专业协会 IEEE 在几年前已经建设了一个编程语言排名。
这个 IEEE 的排名系统利用一组 12 个指标,包罗好比谷歌的搜索量、谷歌的趋势、Twitter 的点击次数、GitHub 的库、Hacker News 的帖子等等。
利用这种要领,他们将几十种编程语言举办排名和分类。
在他们对 2016 年较高级编程语言的回首中,R 语言已经攀升到了第 5
IEEE 的要领长短常全面的,所以这对付 R 相对付其他语言的气力和进修的相对代价是一个很好的指示。
TIOBE:R的排名高,且具有持续的上升趋势
另一个排名系统,TIOBE 索引,为各类编程语言建设了相似的分数和排名。
假如我们看看 R 语言在 TIOBE 索引上的表示,我们可以看到近十年以来一个不变的上升趋势。
请记着,TIOBE 索引的布局是「编程语言受接待水平的指示」。索引每个月更新一次,评分是基于世界范畴内的精尖工程师、课程和第三方供给商的利用量。像谷歌、Bing、雅虎、维基百科、亚马逊、油管和百度等热门搜索引擎则用来计较排名。
到 2016 年 12 月,R 语言的总排名是 17(在所有编程语言中)。它的较高排名是 2015 年 5 月的第 12 名。
这表白,假如你想进修数据科学,今朝进修 R 语言仍然是一个很好的选择。(要清楚,Python 在 TIOBE 索引上的排名较高,可是很难从 Python 相关利用的严格数据中疏散出网络和软件开拓的利用环境,因此这大概不是一个公正的较量)。
Redmonk:R语言排名12
另一个常常选择的语言排名系统是 Redmonk 编程语言排名,它是从 GitHub(代码行数)和 Stack Overflow(标签数量)上的风行度衍生出来的。
停止 2016 年 11 月,R 语言在所有编程语言中排名第 13 位。
另外,R 语言几年来一直呈上升趋势
在前 20 种语言的后半部门中,跟着时间的推移,R 语言显示出最一致的上升趋势。从 2012 年的第 17 位开始,它跟着时间的推移稳步上升,但好像在 13 这个位置上逗留了持续三个季度。然而这一次,R 语言取代了排名 12 位的 Perl,使其跌落到 13 位。固然仍然有大量的 Perl 语言在畅通,可是越发专业的 R 语言已经篡夺了这个一度被认为是网络粘结剂的 Perl 语言的位置。虽然这与 R 语言的支持者们无关。R 语言相对奇特的前 20 路径是值得它们的粉丝所欢呼的。
O’Reilly:R语言可以说是最常见的数据编程语言
最后,媒体 O’Reilly 在已往的几年里举办了一次数据科学观测,他们利用观测数据来阐明数据科学的趋势。除了其他的之外,它们阐明东西的利用环境来确定哪些东西是数据科学家最常利用的。
在 2016 年的观测陈诉中,R 语言是最常用的编程语言(假如我们解除 SQL,这不是我在这里所指的编程语言)。57% 的受访者利用 R 语言(对比之下,利用 Python 的有 54%)
(别的,有 70% 的受访者利用 SQL。假如你正在寻找 R 之后的另一个语言去进修,我会推荐 SQL)
他们还观测了人们去识别数据可视化的东西。他们发明 ggplot2 是最常见的可视化东西。我会在一篇即将宣布的博客中表明为什么我喜欢 ggplot2,但假如我们只跟踪人气,O’reilly 的观测表白 ggplot2 时最常被利用的东西之一,甚至大概就是最常被利用的。
R 语言是进修数据科学的极佳语言
R 语言成为一门极佳的数据科学语言,在普遍性之外,另一大原因是:它是一门很是好的进修数据科学的语言。
R 语言是真正的「数据语言」
R 语言之所以如此适合数据科学的原因部门跟它自己的语言特性有关。自 R 语言发现之初,数据及统计的见识便融入个中。R-Project 形容其为「为统计计较而筹备的编程语言及情况」。也就是说,R 语言的 DNA 中就含有统计及数据的基因。
如此说来,R 语言在浩瀚编程语言中可谓独树一帜。它是一门为统计而生的语言,是一门为(处理惩罚)数据而设计的语言。当你在进修数据科学的时候,这将带来很大的优势——因为险些所有的统计测试或要领都可以或许在 R 语言及其拓展库中找到。
较好的书籍和资源都利用了 R 语言
俨然,R 语言已是一门「统计计较」语言。与之相关的是,很多很好的书籍及进修资源都回收了 R 语言。
这很是重要。假如你是一名初学者,在数据科学规模才方才起步,那么你将需要进修许多常识。要真正把握数据科学,你需要进修包罗概率论、统计学、数据可视化、数据处理惩罚及呆板进修在内的诸多子规模。所有这些规模都包括了理论基本(也就是你需要进修的内容),同时你也需要通过编写措施实际利用它们。
也就是说,你需要这样一种语言:
可以或许在这些规模都可以或许发挥浸染(如数据可视化、数据处理惩罚、呆板进修(也叫做统计进修))。这门编程语言在这些规模内尚有高质量的进修、练习素材。
尽量市面上有许多关于数据科学的书籍与课程,但个中较好的大多都是基于 R 语言的。
利用 R 语言进修概率论
以概率论为例,两本关于概率论的优秀书籍都是用 R 语言来编写书上的上手案例的。这两本书别离是:
《Probability with Applications and R》。这本书语言俭朴、通俗易懂、层次清晰。《Introduction to Probability》。这本书基于哈佛著名的统计学课程编写。
这只是两个简朴的例子。假如你进一步掘客的话,你会发明险些所有的关于概率论的书籍都利用了 R 语言。
利用 R 语言进修频率论统计学(frequentist statistics)
对付统计学方面的书籍也是如此。
因为统计学已经深入 R 语言的骨髓,所以很多统计学讲义利用 R 语言作为其进修东西。
《Statistics: an Introduction using R》是一本先容频率论统计学的优秀书籍。
一样的,假如你在亚马逊上快速搜索一下,你找到的大部门统计学入门的课本都利用了 R 语言作为它们的进修东西。
利用 R 语言进修贝叶斯统计学
当你正在寻找一本关于贝叶斯统计学的入门书籍时,这种趋势变得更为明明。
险些所有的关于贝叶斯统计及揣度的书籍都是用了 R 语言。尽量有些破例(有些书利用了 C 语言可能 Python),但主导的仍然是 R 语言。
假如你对贝叶斯统计学感乐趣,你可以查察这几本书:
Introduction to Bayesian StatisticsStatistical RethinkingDoing Bayesian Data Analysis
假如你对贝叶斯要领感乐趣的话,这些书是你最棒的选择了,而且它们都利用了 R 语言。
进修如安在 R 中举办数据可视化
当你在进修数据可视化的时候,尽量你会有相对更多的编程语言可以选择,但笔者照旧认为,大大都最优的编程资源都利用了 R 语言。
假如你正在进修数据可视化,那么你可以参考 Nathan Yau 的事情。他常常在他的博客(flowingdata.com)上上传一些利用 R 语言的数据可视化教程。(笔者同时推荐他所写的《Data Points》作为参考,在这本书中主要教学的是数据可视化的一些法例而非编程实现。)
笔者亦推荐 Hadley Wickham 所著的书。假如你对利用 R 语言举办数据可视化感乐趣的话,那么你应该拥有 ggplot2 这本书。它不只教会你如何利用 R 语言中数据可视化库的利用要领,还可以或许改变你对数据举办可视化的见识。
同时,你还可以参考这本书:R for Data Science。这本书包括了对数据可视化很是棒的先容,尚有对许多 R 语言数据可视化东西库的先容,是一本进修 R 语言的必备书籍。
利用 R 语言来进修呆板进修
最后,假如你想开始进修呆板进修,有许多优秀的利用 R 语言描写的呆板进修的书籍可以参考。
我认可,此刻有各类百般利用差异的编程语言的来描写呆板进修的书籍,但我认为,在较好的那一部门书籍中有很大比例都是利用的 R 语言。
下面有两个利用 R 语言来先容呆板进修的优秀的教程:
统计进修导论(An Introduction to Statistical Learning)应用预测建模(Applied Predictive Modeling)
这些书写得十分严谨同时也很容易领略。书中会提及一些理论常识(可是不会用很巨大的数学常识来为难你),同时也会传授你一些实用的技能。
毫无疑问,这是我给想进修呆板进修的初学者最常推荐的两本书,而且它们都利用的是 R 语言。
假如你想进修数据科学,R 语言是一个绝佳的选择
最后强调一下,R 是一种进修数据科学的优质语言,因为很多优秀的书籍(以及一些其它的教程)都利用 R 来作为编程语言。
所以,假如你是数据科学的初学者,由于数据科学进修质料的数量和质量所限制,所我认为 R 语言是较好的选择。
一个关于 Python 的快速注解
就数据科学编程语言来说,Python 是今朝可以替代 R 的语言。(因为其它的替代方案缺乏完善的软件包生态系统可能长短开源/免费的)。
我不会在这里叙述我对 Python 的全部领略,可是我必需要讲的是,Python 简直是一种优秀的语言。我爱 Python。
话虽如此,对付数据科学的初学者来说,我仍然认为 R 是更好的选择,个中的原因我在上文中已经举办了概述。
再者,我认为关于基本数据科学观念(概率、统计、贝叶斯统计、呆板进修)的很多较好的教科书和教程都是基于 R 的。虽然,这并不是说没有优秀的数据科学书籍利用 Python,我只是认为基于 R 的书籍的平均质量高于用其它编程语言描写的书籍。
有关于 Python 的另一个问题是,许多学生在开拓进程中会碰着一些坚苦。他们在进修的进程中并没有花几多时间来进修统计数据、数据可视化、数据操纵、概率等,而是耗费了大量的时间去进修数据布局、轮回、流程节制、面向工具的编程和 Web 框架。这些技术可以用来完善焦点的数据科学东西包,但它们不是我们想要相识的数据科学领域的相关内容。事实上,我发起大大都初学者先进修根基数据科学相关的内容(如数据操纵、可视化、阐明等)后再进修软件开拓。
固然大大都的初学者在今后会进修软件开拓的技能,可是许多利用 Python 来作为入门数据科学的初学者会陷入到软件开拓和 Web 开拓等规模。我认为之所以会呈现这样的问题,是因为在很多方面,Python 都是运用于这些规模的。大大都关于 Python 的书籍并不是真正的数据科学书籍,而是报告一些有关于编程和开拓的内容。所以,有些数据科学的初学者选择利用 Python 描写的书籍来进修数据科学,然而他们最终却耗费了数月甚至数年来进修软件和 web 开拓而不是数据科学。
虽然,我很是爱 Python,可是对付初学者而言,我认为选择 Python 有一些冒险。较好照旧从 R 语言开始,因为统计学和数据科学就像「它的 DNA」一样和它绑定在一起。利用 R 语言,不只更容易进修,也不容易偏离我们的进修领域。
假如你想进修数据科学,那么就进修 R 语言吧
你应该记着的是,假如想要进修数据科学,R 是可以说是较好的选择。在人气方面,R 拥有很是高的排名,而且还处于上升趋势。另外,有许多较好的数据科学的书籍和教程都是利用 R 语言来描写的。
假如你想要开始进修数据科学,我的发起如下:
进修 R 语言重点进修 ggplot2、dplyr、tidyr、lubridate 和一些其它用于实现数据的可视化和节制的 Hadleyverse 东西进修同时利用这些东西来举办数据阐明。当你对这些 R 东西包有所相识之后就可以开始进修概率、统计学和呆板进修的内容了 (我推荐各人利用我在本文中所谈到的那些资料)
R vs Python – 超等英雄
R 这么好,也不要健忘 Python。在这一部门我们比拟一下数据科学家的两个超等英雄——R 和 Python。
Python 就像是超人,而 R 和蝙蝠侠之间有几点相似之处。让我们建设一个表来列出这些相似之处。#p#分页标题#e#
R 就像蝙蝠侠
侦探事情伶俐狡黠利用东西动脑多于蛮力
Python 就像超人
肌肉气力超等气力优雅应用面广蛮力多于动脑
接下来表明一下 R 和 Python 之间的区别及原因。另外,让我们辅佐数据科学家找到更好用的编程语言。
R vs Python / R 和 Python : 哪一种更好用?
R 和 Python 都是开源的、免费的高级编程语言。R 专门用于统计计较。它有大量附加包(package)/东西来支持呆板进修和数据阐明。另一方面,Python 是一种通用的强大的编程语言,在数据筹备、数据调试和数据阐明方面有非凡的应用。
这种区别也是差异阐明人士喜欢这些编程语言的原因。Python 凡是被实验开拓数字处理惩罚和阐明技术的计较机措施员所青睐。另一方面,R 被数学家和统计学家优先选择。这些差别在这些语言的进修资源(书籍和网上论坛)中是显而易见的。譬喻,思量以下 4 本免费的在线图书。#p#分页标题#e#
所有这些书都是高质量的统计课本,用 R 作为推荐编程语言。这些只是几个例子。请留意,第一本书不是专门用于 R,与第二本书有沟通的作者。你很少会找到用 Python 作为推荐语言的书籍。因此,R 更有本领处理惩罚数据挖掘和统计阐明的相关问题。另一方面,Python 提供了很是好的应用措施来处理惩罚非布局化和巨大的数据集,如图像、书面文本(网络、电子邮件等)、基因、声音等。
实质上,Python 和 R 一起组成了数据科学家的东西包。因此,对付务实的和面向应用的数据科学家来说,相识这两种语言的超等本领和特点是至关重要的。#p#分页标题#e#
利用 R 举办阐明、数据可视化与建模:
为阐明提供了极好的机动性R 使你在阐明的时候更容易思考由于有着十分活泼的统计与数学社区,可以一连的更新和加强阐明成果优秀的数据可视化东西优秀的数据可视化东西
利用 Python 举办数据预处理惩罚、数据清洗,出格针对付非布局化数据(如网页,图像,文本等):
极强的机动性,可以或许从自由文本、网站和社交媒体网站提取信息便于图像挖掘和为阐明筹备数据处理惩罚大量的数据的时候比 R 语言更好
对付一个当真的数据科学家来说,R 和 Python 都应该相识。我们需要的是 R+Python,而不是 R vs Python。
接待插手本站果真乐趣群贸易智能与数据阐明群乐趣范畴包罗各类让数据发生代价的步伐,实际应用案例分享与接头,阐明东西,ETL东西,数据客栈,数据挖掘东西,报表系统等全方位常识QQ群:81035754