数据领域最强编程语言Python和R要合作了!

是的,你没有看错,数据科学领域从业者最离不开的两大编程语言,当红炸子鸡 Python 和“过气网红”R 真的要展开合作了。近日,URSA 实验室宣布,R 和 Python 正携手合作,旨在让使用不同编程语言的数据科学家能够更轻松地协作,避免不同语言开发人员的过多重复工作,这或许会成为今年最雄心勃勃的交叉事件。有网友对这次合作发表评论道:“这个真的蛮历史性时刻的”,不过也有网友调侃“两个最慢的语言正在合作”,你怎么看?

数据领域最强编程语言Python和R要合作了!

  • 策划 & 编辑 | Natalie
  • 组稿 | Natalie,Vincent
  • 文章来源| AI前线公众号(ID:ai-front),转载请联系公众号负责人取得授权

Ladies and 乡亲们,争夺数据分析领域最好用编程语言的两大重量级选手:Python 和 R 语言,竟然宣布:合!作!了!

如果你身处数据分析领域,那么你一定遇到过或者听说过这个两难抉择——在进行数据分析时,到底使用哪种语言更好,R 还是 Python?

“最好的编程语言”之争旷日持久,数据科学领域也不例外。网上经常出现诸如“我想学习机器学习,我应该用哪个编程语言”或者“我想快速解决问题,我应该用 R 还是 Python”等这类问题。尽管这两种编程语言目前都是数据分析社区的佼佼者,但是它们仍然深陷“哪一种才是数据科学家的首选编程语言”的争论之中。

但是各位,从今往后,你们可以不用再纠结这个问题了。

数据科学领域最强编程语言之争

在介绍合作相关事宜之前,我们照例先回顾一下这两种编程语言的前世今生,以及他们在编程江湖当中的恩怨情仇。

前世今生

Ross Ihaka 和 Robert Gentleman 于 1995 年基于 S 语言创造了开源语言 R,目的是专注于提供更好和更人性化的方式做数据分析、统计和图形模型。

起初 R 主要是在学术和研究中使用,但近来工业界也发现了 R 的好,这使 R 成为在企业中使用的全球发展最快的统计语言之一。

而 Python 由 Guido van Rossem 创建于 1991 年,主要强调效率和代码的可读性。希望深入的数据分析或应用统计技术的程序员是 Python 的主要用户。

当你越需要在工程环境中工作,你会越喜欢 Python。它是一种灵活的语言,在处理一些新东西上表现很好,并且注重可读性和简单性,学习曲线比较平缓。

恩怨情仇

这两种编程语言是怎么结下梁子的?还得从机器学习和数据分析说起。

机器学习和数据分析之间的差异有些难以言明,但二者最主要的不同就在于:比起模型的可解释性,机器学习更加强调预测的准确性;而数据分析则更加看重模型的可解释性以及统计推断。

于是乎 ,由于 Python 更看重预测结果的准确性,它成为了机器学习的一把利器。而 R 作为一种以统计推断为导向的编程语言,在数据分析界也得到广泛应用。

但是,这并不是就给这二位定了性,除了各自的领域别的都干不成了。实际上,Python 也可以高效地完成数据分析工作,R 在机器学习中也具有一定的灵活性。它们都拥有相当多的资源库去实现彼此特定的函数功能,比如 Python 就有很多资源库来提高自己统计推断的能力,R 也有很多包可以提升预测的准确率。

由于二者的这些特性,网络上对于 Python 和 R 到底谁强谁弱的争论一直没有定论,就连在学界和业界的使用率也一直你追我赶。

不过,随着近几年人工智能的普及,越来越多学校开展了 Python 语言的编程课,转型人工智能的企业也加大了对 Python 语言的投入力度。根据 Stack Overflow 2018 年开发者调研报告显示:Python 的排名有所上升,今年已经超过了 C#,正如它去年超过了 PHP。Python 坚定主张要成为「最快速成长的主流编程语言」,至于 R 语言,则被远远甩在后面。

数据领域最强编程语言Python和R要合作了!

看似人气差距越来越大,有人戏称他们一个当季网红,一个“过气网红”。但也有技术大佬对于这种谁是最佳编程语言的争论感到不满,进而提出了一个想法:为什么不让他俩合作呢?

这次合作由谁发起?

技术大佬 Hadley Wickham 和 Wes McKinney 共同促成了这次合作。

Hadley Wickham 是编程语言 R 最重要的开发人员,Wes McKinney 则是编程语言 Python 最重要的开发人员之一。

Wes McKinney 在 2008 年创建了 pandas project,pandas 是一个开源的 BSD 许可的库,为 Python 编程语言提供了高性能、易用的数据结构和数据分析工具(对,就是你在 Python 里超级常用的那个 pandas 库)。此外,他还撰写了 Python for Data Analysis 一书,帮助推广 Python 在数据科学领域的应用。他是 Apache Software Foundation 的成员,并且是 Apache Arrow 和 Apache Parquet 的 PMC 成员,曾任 DataPad 的首席执行官和共同创始人。

Hadley Wickham 则是许多在数据科学领域使用最广泛的 R 软件包的创建者,如 ggplot2、dplyr 和其他许多软件包。他写了几本关于 R 语言的书,如 R for Data Science 和 Advanced R。Hadley 是 RStudio 的首席科学家,同时也是 Ursa Labs 关于 R 语言支持和一般 API 设计和可用性的技术顾问。

上个月,McKinney 宣布成立 USRA 实验室——一个致力于改进数据科学工具的创新组织。本次 Python 和 R 的合作就是 USRA 实验室与 Wickham 所在的公司 RStudio 之间的合作项目,RStudio 目前负责维护 R 语言最受欢迎的用户界面。USRA 实验室的主要目标是让使用不同编程语言的数据科学家能够更轻松地协作,避免不同语言开发人员的过多重复工作。除了改进 R 和 Python,他们还希望其工作能够改进其他开源编程语言的用户体验,比如 Java 和 Julia

Python 和 R 都可以免费使用,并且经常被认为是数据科学领域中的竞争对手。但 Wickham 和 McKinney 都认为 这种竞争是没有必要的。事实上,他们认为通过合作可以使这两种编程语言对数百万用户更加有用。

Python 和 R 强强联手

对于在科技公司(如谷歌、Facebook 等)工作的数据科学家、研究人员和数据记者来说,Python 和 R 都是必不可少的工具。开发者最头痛的问题是,当他们的同事使用另一种不同的编程语言时,协作往往难于上青天。URSA 实验室将通过打造适用于所有编程语言的新标准,使与使用其他数据科学语言的人共享数据和代码变得更加容易。开发者们将这一行动称作为对“互操作性”的改进。Wickham 和 McKinney 已经一起创建了一个在 Python 和 R 中都可以使用的文件格式。

Wickham 和 McKinney 表示,除了想让协作变得更容易,还有另外一个原因促使他们展开这个合作项目:使用不同编程语言的开发者总是在重复解决同一个问题,却没能把他们从中学到的经验教训分享给其他人。

Wickham 举了一个例子,在每一种编程语言中,开发人员都要会计算平均值。这对于用户来说非常简单,不管是在 Python 还是 R 中都只需要一行代码。但是对于语言的开发人员来说,找到用一行代码执行计算的最佳方法却是一个棘手的问题。R 和 Python 的开发人员都倾向于用 C++ 和 C 语言来解决这个问题,这两种语言对于开发人员来说很好用,但对普通用户来说却很棘手。Wickham 认为,在理想情况下,如果一种编程语言的开发人员找到了做某事的最佳方法,那么这个方法应该应用于其他所有语言。这也是 USRA 实验室的核心任务。

Wickham 和 McKinney 补充道,这个合作项目除了解决技术问题,也希望让不同的编程语言社区和平共处。他们认为使用这些语言的人合作得越多,数据科学领域就能发展得越好。

“我希望这次合作能结束 R 和 Python 之间毫无意义的争斗,”Wickham 说,“因为这两种语言都很棒。”

参考资料:

http://wesmckinney.com/blog/announcing-ursalabs/

https://qz.com/1270139/r-and-python-are-joining-forces-in-the-most-ambitious-crossover-event-of-the-year-for-programmers/

本文为专栏文章,来自:AI前线,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/51873.html 。

(5)
AI前线的头像AI前线专栏
上一篇 2018-05-06 07:41
下一篇 2018-05-14 23:04

相关文章

  • 读心术,技术控,实时预测怎样改变美国大选

    在这个时代,政治技术可以决定政治成败。

    2016-10-13
    0
  • 一位算法师工程师的Spark机器学习笔记:构建一个简单的推荐系统

    摘要:本文是一位算法师工程师的Spark机器学习笔记,教你构建一个简单的推荐系统。 推荐引擎应用场景: 用户有海量选择:随着场景内item越来越多,用户越来越难以选择到合适的产品 个性化场景:在选择产品时,会借鉴那些与推荐用户相似地群体,利用群体智慧对用户进行推荐”千人千面” 在本篇博客中,会涉及到以下几个部分: 介绍不同类型的推荐引擎 使用用户偏好模型来构…

    2016-03-13
    0
  • 如何做好数据精细化分析,让你的运营效果指数级增长?

    随着运营种类的增多,针对不同的运营模块,对应的数据分析方法也不相同。那么,怎么通过精细化的数据分析使流量运营、用户运营、产品运营、内容运营的运营效果实现指数级增长呢?

    2021-09-14
    0
  • 数据分析六部曲

    【文章摘要】什么是数据分析?数据分析是用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析的目的?把隐藏在一大批看似杂乱无章的数据背后的信息集中和提炼出来,总结出研究对象的内在规律。

    2015-10-30
    0
  • 用R语言进行数据分析:命令行编辑器

    C.1 预备工作 如果你的 UNIX 系统已经安装了 GNU readline 库, 那么 R 配置中允许在 UNIX 下编译 R 代码,调用内置的 命令行编辑器,编辑和重新调用以前用过的命令。 注意:该附录提到的接口不是用于 UNIX 系统的 GNOME接口,而仅仅用于标准的命令行 接口。 如果启动时设置了参数 –no-readline (使用…

    2015-11-22
    0
关注我们
关注我们
分享本页
返回顶部