由**Martijn Theuwissen**于 2015 年 5 月 26 日在数据科学工具、DataCamp、Python、Python 与 R、R上发表。
在DataCamp上,我们的学生经常询问他们是否应该使用 R 和/或 Python 来处理日常的数据分析任务。虽然我们主要提供交互式 R 教程,但我们总是回答,这一选择取决于他们面临的数据分析挑战的类型。
Python 和 R 都是流行的统计编程语言。虽然 R 的功能是为统计学家开发的(比如 R 强大的数据可视化能力!),Python 由于其易于理解的语法而受到赞誉。
1. Google 网络安全证书 - 快速进入网络安全职业生涯。
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持你的组织的 IT 工作
在这篇文章中,我们将突出 R 和 Python 之间的一些差异,以及它们在数据科学和统计世界中的各自角色。如果你喜欢视觉表现,务必查看相关的信息图表 “数据科学战争:R 与 Python”。
介绍 R
Ross Ihaka 和 Robert Gentleman在 1995 年创建了开源语言 R,作为 S 编程语言的实现。其目的是开发一种语言,专注于提供更好、更用户友好的数据分析、统计和图形模型的方法。最初,R 主要用于学术和研究,但最近企业界也开始发现 R。这使得 R 成为企业界增长最快的统计语言之一。
R 的主要优势之一是其庞大的社区,通过邮件列表、用户贡献的文档和非常活跃的 Stack Overflow 小组提供支持。还有CRAN,这是一个巨大的 R 包库,用户可以轻松贡献。 这些包是 R 函数和数据的集合,使得可以立即获得最新的技术和功能,而无需从头开始开发所有内容。
最后,如果你是一个有经验的程序员,你可能不会难以适应 R。然而,作为初学者,你可能会发现自己在陡峭的学习曲线中挣扎。幸运的是,现在有许多很好的学习资源可以咨询。
介绍 Python
Python 是由 Guido Van Rossem 于 1991 年创建的,强调生产力和代码可读性。那些希望深入数据分析或应用统计技术的程序员是 Python 在统计领域的主要用户之一。
当你在工程环境中工作时,你可能会更喜欢 Python。它是一种灵活的语言,非常适合做一些新颖的事情,而且由于其关注可读性和简洁性,学习曲线相对较低。
与 R 类似,Python 也有包。PyPi是 Python 包索引,包含用户可以贡献的库。就像 R 一样,Python 有一个很棒的社区,但由于它是通用语言,所以稍微分散。然而,Python 在数据科学中的应用正迅速在 Python 世界中占据主导地位:期望正在增长,更多创新的数据科学应用将在这里诞生。
R 与 Python:常用数字
在网上,你可以找到许多比较 R 和 Python 采用情况和受欢迎程度的数字。虽然这些数据通常很好地指示了这两种语言在计算机科学整体生态系统中的演变情况,但将它们并排比较是困难的。 主要原因是你会发现 R 只存在于数据科学环境中; 另一方面,作为一种通用语言,Python 广泛应用于许多领域,如 Web 开发。这通常会使排名结果倾向于 Python,而薪资受到一些负面影响。
R 主要用于数据分析任务需要独立计算或在单独服务器上进行分析时。它非常适合探索性工作,并且由于大量的包和现成的测试,几乎适用于任何类型的数据分析,这些工具通常为你提供必要的工具,让你快速上手。R 甚至可以成为大数据解决方案的一部分。
在开始使用 R 时,一个好的第一步是安装令人惊叹的 RStudio IDE。完成后,我们建议你查看以下一些流行的包:
何时以及如何使用 Python?
当你的数据分析任务需要与网页应用集成,或统计代码需要整合到生产数据库中时,你可以使用 Python。作为一种完整的编程语言,它是实现生产使用算法的绝佳工具。
虽然 Python 数据分析包的初期阶段曾是一个问题,但这些年已经有了显著改善。确保安装 NumPy /SciPy(科学计算)和 pandas(数据处理),使 Python 可用于数据分析。同时查看一下 matplotlib 制作图形,以及 scikit-learn 进行机器学习。
与 R 不同,Python 并没有明确的“获胜”IDE。我们建议你查看一下 Spyder、IPython Notebook 和 Rodeo,看看哪个最适合你的需求。
R 和 Python:数据科学数字
如果你查看最近针对数据分析编程语言的调查,R 通常是明显的赢家。如果专注于 Python 和 R 的数据分析社区,类似的模式也会出现。
尽管上述数据如此,但有迹象表明更多人正在从 R 转向 Python。此外,还有一部分人群在适当的时候同时使用这两种语言。这正符合我们对学生的建议。
如果你计划开始数据科学的职业生涯,两种语言都很重要。就业趋势显示对这两种技能的需求增加,薪资远高于平均水平。
R:优缺点
可视化数据通常比单纯的原始数字更易于理解和有效。R 和可视化是完美的组合。一些必看的可视化包包括 ggplot2、ggvis、googleVis 和 rCharts。
R 拥有丰富的前沿包和活跃的社区。包可在 CRAN、BioConductor 和 Github 上获得。你可以在 Rdocumentation 上搜索所有 R 包。
R 是由统计学家为统计学家开发的。他们可以通过 R 代码和包传达思想和概念,你不一定需要计算机科学背景就能入门。此外,它在学术界之外的采纳率也在增加。
R 的开发目的是为了让统计学家的工作更轻松,而不是为了让你的计算机更轻松。尽管 R 由于代码编写不佳可能被认为较慢,但有多个包可以提高 R 的性能:pqR、renjin 和 FastR、Riposte 等。
R 的学习曲线并不简单,特别是如果你习惯于图形用户界面进行统计分析的话。如果不熟悉,寻找包也可能会非常耗时。
Python:优缺点
IPython Notebook 使得使用 Python 和数据变得更容易。你可以轻松地与同事共享笔记本,而不需要他们安装任何东西。这大大减少了组织代码、输出和笔记文件的开销,让你有更多时间进行实际工作。
Python 是一种通用语言,易于学习且直观。这使得其学习曲线相对平缓,加快了编写程序的速度。简而言之,你需要更少的编码时间,有更多时间来玩耍!
此外,Python 测试框架是一个内置的、入门门槛低的测试框架,鼓励良好的测试覆盖率。这确保了你的代码是可重用和可靠的。
Python 把背景各异的人们聚集在一起。作为一种通用、易于理解的语言,程序员都知道,统计学家也能轻松学习,你可以构建一个与工作流每个部分都集成的工具。
可视化在选择数据分析软件时是一个重要标准。尽管 Python 有一些不错的可视化库,如 Seaborn、Bokeh 和 Pygal,但可能选择过多。此外,与 R 相比,可视化通常更复杂,结果也不总是那么令人满意。
Python 是 R 的挑战者。它没有提供数百个必要的 R 包的替代品。虽然它在追赶,但是否会让人们放弃 R 仍然不明确。
最终赢家是..
由你决定!作为数据科学家,你的工作是选择最适合需求的语言。一些可以帮助你的问题:
1. 你想解决哪些问题?
-
学习一门语言的实际成本是多少?
-
在你的领域中,常用的工具有哪些?
-
还有其他可用的工具吗?这些工具与常用工具有何关系?
希望这对你有帮助!
关于 DataCamp
DataCamp 是一个在线互动教育平台,提供数据科学和 R 编程课程。每门课程围绕特定的数据科学主题构建,并结合视频讲解和浏览器内编码挑战,让你通过实践学习。你可以随时随地免费开始每门课程。
相关:
-
R 领先 RapidMiner,Python 迎头赶上,大数据工具增长,Spark 点燃
-
数据科学的语法:Python 与 R
-
顶级 KDnuggets 推文,4 月 2-5 日:数据科学生态系统:数据整理的实用工具和技巧