编程语言之间的战斗一直是许多人所感兴趣的。 随着世界的发展,我们每隔几个月就会有一种新的编程语言或框架。 开发人员/分析师/研究人员一直在寻找能够以最低的成本获得良好性能而完成任务的最佳语言。
在标题中使用省略号的原因是,我们一直在寻找错误的选择语言的原因。 有多种因素导致选择某种语言。 随着数据科学项目的大量涌入市场,问题不再是"哪一种是最好的语言",而是哪一种适合您的项目需求和环境(工作环境)。
因此,在这篇文章中,我打算向您提出正确的问题集,以便为您的数据科学项目选择最佳的编程语言。
数据科学最常用的编程语言
Python和R是统计分析或以机器学习为中心的项目中使用最广泛的语言(例如Java,Scala,Matlab)。
这两种都是最先进的开源编程语言,具有强大的社区支持。 您将不断学习有关实现更高级别的性能和复杂性的新库和工具。
Python
Python以其易学易懂的语法而闻名。 使用像Python这样的通用语言(所有行业),您可以构建完整的科学生态系统,而不必担心兼容性或接口问题。
Python代码的维护成本很低,并且可以说更强大。 从数据整理到功能选择,Web抓取和我们机器学习模型的部署,Python可以通过所有主要ML和深度学习API(例如Theano,Tensorflow和PyTorch)的集成支持完成几乎所有工作。
R
R是由院士和统计学家在二十多年前开发的。 如今,R使许多统计学家,分析师和开发人员都可以进行分析。 我们在CRAN(开放源代码存储库)中提供了超过12000个软件包。
自从开发人员牢记统计学家以来,R成为所有核心科学和统计分析的首选。 我们在R中提供了一个软件包,用于几乎所有类型的分析。 借助RStudio之类的工具可以非常轻松地进行数据分析,使您可以通过简洁明了的报告来传达结果。
4个问题,以了解最适合您的项目的语言!
那么,一个人如何为自己的工作做出正确的选择?
尝试回答以下四个问题:
1. 您的组织/行业首选哪种语言/框架?
根据您所从事的行业以及同行和竞争对手最常用的语言,您可能想说相同的语言。 这是由David Robinson(数据科学家)进行的分析,这反映了R在行业中的普及程度,您可以看到R在学术界和医疗保健中的使用非常出色。
因此,如果您想从事研究,学术或生物信息学研究,可以考虑使用R over Python。
硬币的另一面是软件行业,应用程序驱动的组织和基于产品的公司。 您可能必须与组织基础架构的技术堆栈或同事/团队使用的语言紧密结合。
而且大多数组织/行业都具有基于Python的基础架构,包括学术界:
对于有抱负的数据科学家来说,学习具有多种应用程序并可能增加他们获得工作机会的东西是一个明智的选择。
2. 您的项目范围是什么?
这是一个重要的问题,因为在选择一种语言之前,您必须为您的项目确定一个议程,以及要在多大程度上使用它。
R:例如,如果您只想通过数据集简单地解决统计问题,执行一些多元分析,并准备一份报告或解释这些见解的仪表板,R可能会因为其强大的可视化效果而成为更好的选择 和通讯库。
Python:另一方面,如果目标是首先进行探索性分析,开发深度学习模型,然后将该模型部署到Web应用程序,Python的Web框架以及所有主要云提供商的支持下,那么它无疑是赢家。 。
3. 您在数据科学领域的经验如何?
对于对统计和数学概念了解有限的数据科学初学者,Python可能会成为更好的选择,因为它使您可以轻松地编写算法的片段。
使用NumPy之类的库,您可以自己操纵矩阵和编码算法。 作为新手,总要学习从头开始构建东西,而不是跳到使用机器学习库。
而如果您已经了解了机器学习算法的基础知识,则可以选择其中任何一种语言来开始使用。
4. 您手头有多少时间/学习费用?
您可以投入的时间又为您选择了另一个案例。 根据您在编程方面的经验和项目的交付时间,您可以选择一种语言而不是另一种语言来开始该领域。
如果您的项目优先级较高,而且您不懂这两种语言,那么R可能是您入门时更容易的选择,因为您需要有限的编程经验或没有编程经验。 您可以使用现有库用几行代码编写统计模型。
如果您有足够的带宽来探索库并了解探索数据集的方法(如果使用R,可以在Rstudio中快速完成),那么Python(程序员的选择)是一个很好的选择。
结论
简而言之,R和Python功能之间的差距正在缩小。 大多数工作都可以用两种语言完成。 两者都有丰富的生态系统来支持您。
然后,为项目选择语言取决于:
- 您先前在数据科学(统计和数学)和编程方面的经验。
- 当前项目的领域以及所需的统计或科学处理范围。
- 您的项目的未来范围。
- 在您的团队,组织和行业中得到最广泛支持的语言/框架。