数据领域最强编程语言Python和R要合作了!
只做你的唯一
Ladies and 乡亲们,争夺数据分析领域最好用编程语言的两大重量级选手:Python 和 R 语言,竟然宣布:合!作!了!
如果你身处数据分析领域,那么你一定遇到过或者听说过这个两难抉择——在进行数据分析时,到底使用哪种语言更好,R 还是 Python?
“最好的编程语言”之争旷日持久,数据科学领域也不例外。网上经常出现诸如“我想学习机器学习,我应该用哪个编程语言”或者“我想快速解决问题,我应该用 R 还是 Python”等这类问题。尽管这两种编程语言目前都是数据分析社区的佼佼者,但是它们仍然深陷“哪一种才是数据科学家的首选编程语言”的争论之中。
但是各位,从今往后,你们可以不用再纠结这个问题了。
数据科学领域最强编程语言之争
在介绍合作相关事宜之前,我们照例先回顾一下这两种编程语言的前世今生,以及他们在编程江湖当中的恩怨情仇。
1. 简单
我们可以说Python是简约的语言,非常易于读写,遇到问题时,程序员可以把更多的注意力放在问题本身上,而不用花费太多精力在程序语言、语法上。
2. 免费
Python是免费开源的。这意味着程序员不用花钱,就可以共享、复制和交换它,这也帮助Python形成了强壮的社区,使用它更加完善,技术发展更快。专业人士可以在社区和初学者分享他们的知识和经验。
找到你可以使用的开源库会得到什么好处?削减一半的项目支出!
3. 兼容性
Python兼容众多平台,所以开发者不会遇到使用其他语言时常会遇到的困扰。
4. 面向对象
Python既支持面向过程,也支持面向对象编程。在面向过程编程中,程序员复用代码,在面向对象编程中,使用基于数据和函数的对象。尽管面向对象的程序语言通常十分复杂,Python却设法保持简洁。
5. 库
Python社区创造了一大堆各种各样的Python库。在他们的帮助下,你可以管理文档,执行单元测试、数据库、web浏览器、电子邮件、密码学、图形用户界面和更多的东西。所有东西包括在标准库,然而,除了它,还有很多其他的库。
恩怨情仇
这两种编程语言是怎么结下梁子的?还得从机器学习和数据分析说起。
机器学习和数据分析之间的差异有些难以言明,但二者最主要的不同就在于:比起模型的可解释性,机器学习更加强调预测的准确性;而数据分析则更加看重模型的可解释性以及统计推断。
于是乎 ,由于 Python 更看重预测结果的准确性,它成为了机器学习的一把利器。而 R 作为一种以统计推断为导向的编程语言,在数据分析界也得到广泛应用。
但是,这并不是就给这二位定了性,除了各自的领域别的都干不成了。实际上,Python 也可以高效地完成数据分析工作,R 在机器学习中也具有一定的灵活性。它们都拥有相当多的资源库去实现彼此特定的函数功能,比如 Python 就有很多资源库来提高自己统计推断的能力,R 也有很多包可以提升预测的准确率。
由于二者的这些特性,网络上对于 Python 和 R 到底谁强谁弱的争论一直没有定论,就连在学界和业界的使用率也一直你追我赶。
不过,随着近几年人工智能的普及,越来越多学校开展了 Python 语言的编程课,转型人工智能的企业也加大了对 Python 语言的投入力度。根据 Stack Overflow 2018 年开发者调研报告显示:Python 的排名有所上升,今年已经超过了 C#,正如它去年超过了 PHP。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 说,“因为这两种语言都很棒。"
量化金融分析师:www.gfedu.cn/aqf
欢迎加入金融宽客交流群 :737550026 等你们哟!
欢迎加入AQF考试交流群:760229148 等你们哟!
你的回复
回复请先 登录 , 或 注册相关内容推荐
最新讨论 ( 更多 )
- 这510页的《Python爬虫开发与项目实战》,看完直接膜拜 (大橙)
- 当把这本书《算法导论》学透,年薪50万可能都有点低 (豆包)
- 学编程的小白应该看看的 (豆友269226133)
- 寻找独立开发搭子 (Leo)
- 95后程序媛一枚,想带几个徒弟教他Python爬虫,java,web前端... (晚晚程序媛)