作者:Lou Bajuk
翻译:黄小伟,资深数据从业者。目前就职杭州有赞数据分析团队,欢迎加入!简历邮箱:huangxiaowei@youzan.com
从我们成立之初,RStudio就致力于几个关键的想法:如果用于数据科学的工具是免费和开放的,那么对每个人都更好;我们热爱并支持编码,认为这是解决数据科学问题的最有力途径。
编码使当前和有抱负的数据科学家有能力解决最复杂的问题,因为代码具有灵活性,可重用性,可检查性和可复制性。 考虑到这一点,在RStudio中,我们不会判断您喜欢哪种语言。 我们只是在乎您有能力进行出色的数据科学。 正如RStudio的首席数据科学家哈德利·威克汉姆(Hadley Wickham)在最近对丹·科普夫(Dan Kopf)的采访中所言:“ 尽其所能使自己开心”。 在以后的博客文章中,我们将更多地讨论数据科学编码的好处,但是在这篇文章中,我们将简要地探讨有关R与Python的争论,然后分享为什么我们相信R和Python可以,应该并且确实能很好地工作 一起。R or Python for Data Science?
关于该主题有很多激烈的讨论,但是也有一些很棒的,深思熟虑的文章。 一些人建议使用Python作为通用编程语言是可取的,而另一些人则建议使用专用语言和工具链更好地服务于数据科学,比较和对比了两种语言的起源和发展弧线,通常是为了支持不同的结论。 对于单个数据科学家,需要考虑一些共同点:- Python是一种很棒的通用编程语言,有许多专门用于数据科学的库;
- 许多(如果不是大多数)通用入门编程课程现在都开始使用Python进行教学;
- Python是许多ETL和机器学习工作流程的首选语言;
- 现在,许多(如果不是大多数)统计学和数据科学入门课程都教R;
- R已成为世界上最大的统计知识资料库,其中包含数千种(甚至数万种)经过专家审查的算法的参考实现。 许多R软件包的文档都包含有关该主题的主要文献的链接;
- R进行探索性分析并将工作转化为出色的报告,仪表板或API的进入门槛非常低;
- RStudio中的R通常被认为是进行探索性数据分析的最佳场所;
- 对于某些组织,Python比R更易于部署、集成和扩展,因为组织中已经存在Python工具。另一方面,我们在RStudio与数以千计的数据团队合作,通过我们的开源和专业产品成功解决了这些问题,包括在多语言环境中;
- R拥有来自不同背景的庞大的支持数据科学家社区。 例如,R-Ladies是一个致力于在R社区中促进性别多样性的全球性组织;
- 新型机器学习工具的大多数接口都是首先用Python编写并受支持的,而统计中的许多新方法首先是用R编写的;
- 试图强制一种语言将另一种语言排除在外,也许是出于对复杂性或支持这两种语言的成本的含糊不清的担心,这可能会导致以任何方式排除大量潜在的数据科学家候选人;
关于建立数据科学团队的建议经常强调让一支多元化的团队带来各种观点和互补技能的重要性,以使它更有可能有效地找到针对特定问题的“最佳”解决方案。 从这个角度来看,R用户倾向于来自范围更广的领域专业知识(生态,经济学,心理学,生物信息学,政策分析等);
因此,专注于“ R还是Python?”可能会失去将两者带给单个数据科学家和数据科学团队的优势。 因此,这些文章中的许多最终都得出了相当细微的结论,类似“你们都需要”或“这取决于”。在上面引用的Hadley Wickham的采访中可以找到这种观点的一个很好的例子:
通常,有很多人谈论R与Python,就像R或Python必胜之战。 我认为这没有帮助,因为这实际上不是一场战斗。 这些东西独立存在,并且以不同的方式都很棒 。R and Python for Data Science!
因此,现实是两种语言都很有价值,而且两种语言都将保留下来。 我们的经验证明了这一点。 在与客户交流时,我们发现当今许多数据科学团队都是双语的,他们在工作中充分利用了R和Python。 秉承Hadley的“使用一切使您快乐”的精神,我们努力使这种时时刻刻艰难的关系变得更加幸福。我们为个人数据科学家以及他们所参与的数据科学团队和组织提供了一条更流畅的途径,使其可以并排使用这两种语言,并解决IT团队在支持这两种语言时可能涉及的复杂性或成本问题。
例如:- 我们的开源软件包reticulate和RStudio IDE使在单个数据科学项目中轻松组合R和Python变得很容易;
- 我们的专业产品使跨双语数据科学环境的管理和协作变得更加容易。 例如,RStudio Server Pro可以启动和管理Jupyter Notebook和JupyterLab,而RStudio Connect可以轻松地与利益相关者共享Jupyter Notebook,以及您在R中的工作以及R和Python混合项目;
- 作为改善跨语言协作的一项长期投资,我们正在孵化Ursa Labs,为该行业资助的专注于开源数据科学工具的开发小组提供运营支持和基础架构。Python的pandas软件包的作者Wes McKinney,与Hadley Wickham进行了很多交谈。 Ursa Labs项目的目标无非就是创建一个现代数据科学运行时环境,该环境可以利用过去20年的计算优势,并可以在包括R和Python在内的多种语言中使用;