经常有读者问我们,在数据科学领域,我应该选择Python还是R?诚然,R和Python对数据科学家都很重要。但是对于一个新的数据科学家来说,该如何选择呢?同时学习Python和R也有些不切实际。作者TomWaterman,作为一个有经验的人,先学了R,再学了Python。他列举了Python比R更适合数据科学领域的四个原因,InfoQ中文站翻译分享给大家。在我看来,Python在数据科学领域比R更适合的主要原因有四个。一个新的数据科学家面临一个非常重要的问题:我应该学习Python还是应该学习R?好问题!这个问题真的很重要。因为,“男怕入错行,女怕嫁错郎”。您必须知道,学习第一门编程语言需要花费数百小时。试图学习两种编程语言是不切实际的,尤其是当你刚刚开始你的职业生涯时。那么,你应该做出怎样的选择呢?根据我的经验,如果你选择Python,我相信,你的职业生涯会从中受益匪浅。在我看来,Python是数据科学职业的更好选择,尤其是当你刚刚起步时。我将给出四个我认为Python是你职业生涯更好选择的理由,但我也会澄清:我不认为R是一个糟糕的选择。选择R不会对你的工作机会产生负面影响,但根据你的团队,你甚至可能会被要求学习R。事实上,Facebook使用R作为内部调查工具的分析组件,我们所有的数据科学基础设施都支持该语言.也就是说,我相信如果你学习Python,你将更快地成为一名实践数据科学家,并且能够更好地在统计建模之外的重要领域为你的团队做出贡献。所以,学习Python会让你为公司带来更大的影响,你的事业也会因此而硕果累累。原因1:您可能无论如何都必须学习Python大多数公司要求他们的数据科学家做的不仅仅是预测建模(即机器学习)。至少,您可能需要维护为模型提供数据的数据管道,而这些数据管道可能是用Python构建的。目前,管道的行业标准是基于Python的Airflow,而在Facebook,我们基本上使用相同的内部Python工具。事实上,在Facebook,我估计我们100%的数据科学家每周都使用Python,而可能只有大约10%的人积极使用R。因此,选择Python可能会更有效率:虽然您可以避免使用R一旦找到工作,就不太可能了。原因2:Python更容易学习了解就业所需的时间很重要,尤其是如果您是在大学以外自学的。Python以易于学习而著称。在学习了Python和R之后(虽然我对Python更深入),我觉得Python的名声是实至名归的。当您开始使用统计建模以外的语言功能时,Python易于学习的好处尤其明显。这些功能包括用于分发的打包项目、开发命令行界面、使用SQLAlchemy等对象关系映射(ORM)对数据结构进行建模等等。了解Python会让你更容易掌握这些特性,你的职业生涯也会因此受益。理由三:Python拥有更大的社区Python是世界上最流行的编程语言之一,在Stackoverflow、Kaggle甚至Mediun等站点上都有庞大的社区。因此,当您不可避免地遇到自己无法解决的问题时,您更有可能找到在您之前遇到过问题、寻求帮助并获得解决方案的人。这意味着您将花费更少的时间来调试系统的兼容性问题,而将更多的时间用于交付对您的业务产生影响的代码。理由四:使用Python部署模型更容易最后,您可能会在您的职业生涯中达到一个阶段,您希望能够为任何最终用户实时提供模型。要解决这个问题,您需要构建一个基于REST的Web应用程序,这使用Python很容易。事实上,Python托管了一些世界上最流行的Web应用程序框架,即Django和Flask。贵公司的内部部署工具更有可能支持这些框架,而支持R的可能性相对较小。这些框架的流行还意味着它们得到了平台即服务提供商(如Heroku、AmazonLightsail等)的良好支持。有了这些框架,您将能够在线发布您的个人项目,而只需花费在R中部署相同项目所需工作的一小部分。最重要的是,如果您足够幸运,您的公司已经在使用Python框架在它自己的产品中,然后学习Python意味着你会感到足够安全,可以连接你自己的应用程序内跟踪。能够为您的模型自主捕获更多特征会对您的影响力产生巨大影响。当然,所有决定都需要权衡取舍,选择学习Python而不是R也不例外。虽然我个人认为Python是数据科学职业的更好选择,但Python也有其缺点也值得考虑。对我来说,Python最大的缺点是没有与RStudio相当的工具。最具可比性的Python是JupyterNotebook,但我个人觉得RStuduo更好,因为它具有数据探索能力。作者注:在写完这篇文章后,MarceloGarcia指出免费的Spyder包可以作为RStudio的Python替代品。我还没有机会试用Spyder,但它看起来很棒!R在学术界也很流行,因此R包的文档更有可能是对学术研究的直接参考。这些文档对于从事“前沿”研究的数据科学家很有用。但我认为缺少RStudio并不足以否定Python的相对优势。此外,数据科学学术界的从业者要少得多,这使得R的研究相关优势对大多数数据科学家来说不那么重要。所以,尽管R有很多优点,但我相信如果你选择学习Python,你的职业生涯将会受益匪浅。最后,我认为值得一提的是,我并不认为学习R是一个糟糕的选择,只是Python更有可能成为你职业生涯更好的选择。根据您的情况,学习R可能对您更有意义。无论您选择学习哪种语言,您都不应觉得自己永远无法改变主意。请注意,所有编程语言的相似之处远多于不同之处:学习第二种编程语言比第一种编程语言容易得多。其实我只是选择了先学R!因此,即使我现在建议将Python作为你职业生涯的更好选择,我也很难对R提出过分强烈的警告。关于作者:TomWaterman,Facebook数据科学家。
