0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么在数据科学领域Python比R更好

Wildesbeast 来源:AI前线 作者:刘志勇 2020-04-18 10:49 次阅读

经常有读者问我们,在数据科学领域里,到底是该选 Python 呢,还是选 R 更好?诚然,对于数据科学家来说,R 和 Python 都很重要。但是对于一个新人数据科学家来说,又该如何取舍呢?同时学习 Python 和 R 也有些不切实际。作者 Tom Waterman 作为过来人,他是先学了 R,后来才学的 Python,他给我们列出了为什么 Python 比 R 更适合数据科学领域的四大理由。InfoQ 中文站翻译并分享给大家。

我认为,在数据科学领域,Python 比 R 更合适的理由主要有四个。

新人数据科学家都面临着一个问题,而这个问题非常重要:我是应该学习 Python 呢,还是学习 R?

问得好!这个问题真的非常重要。因为,“男怕入错行,女怕嫁错郎”,要知道,学习第一门编程语言是需要耗费数百个小时的。试图都学这两门编程语言是不切实际的,特别是当你刚刚开始职业生涯的时候。

那么,你应该做出怎样的选择呢?

根据我的经验,如果你选择了 Python,我相信,你的职业生涯将会因此受益良多。

在我看来,对数据科学这一职业来说,Python 是更好的选择,尤其是如果你刚刚起步的话。

我将给出四个理由,来说明为什么我认为 Python 对你职业来说是更好的选择,但我也要澄清一点:我并不认为 R 是一个糟糕的选择。

选择 R 并不会对你的工作机会产生什么负面影响,而是要取决于你的团队,你甚至有可能会被要求学习 R。事实上,Facebook 将 R 作为内部调查工具的分析组件,而我们所有的数据科学基础设施都支持这门语言。

也就是说,我相信,如果你学习 Python 的话,你将会更快地成为一名实践数据科学家,而且还能够更好地在统计建模之外的重要领域为你的团队做出贡献。

因此,学习 Python 将会使你能够为公司带来更大的影响力,而你的职业生涯也将因此硕果累累。

理由一:无论如何,你可能得学习 Python

大多数公司要求他们的数据科学家所做的并不仅仅是预测建模(即机器学习)。至少,你可能需要维护为模型提供数据的数据管道,而这些数据管道很可能就是用 Python 构建的。

目前,管道的行业标准是基于 Python 的 Airflow,而在 Facebook 上,我们使用的内部 Python 工具基本上也是相同的。

事实上,据我估计,在 Facebook,我们的数据科学家 100% 都会在每周使用 Python,而积极使用 R 的人可能只有 10% 左右。

因此,对你来说,如果选择 Python 的话,可能会更有效率:虽然你一旦找到工作就可以避开 R,但不太可能会绕开 Python。

理由二:Python 更容易学习

要知道,成为可雇佣的人所需的时间非常重要,尤其是如果你是在大学以外的地方自学的话。

Python 以易学而闻名。在学过 Python 和 R 之后(虽然我对 Python 方面更深入),我认为,Python 的声誉是当之无愧的。

当你开始使用统计建模之外的语言特性时,Python 易学所带来的好处尤为明显。这些特性包括将项目打包用于分发、开发命令行界面、使用像 SQLAlchemy 这样的对象关系映射(Object-relational mapping,ORM)为数据结构建模等等。

若掌握 Python,将使你更容易精通这些特性,你的职业生涯也将因此受益。

理由三:Python 的社区更庞大

Python 是世界上最流行的编程语言之一,在 Stack overflow、Kaggle 甚至 Mediun 等网站都有庞大的社区。

因此,当你不可避免地遇到连自己也无法解决的问题时,你更有可能找到那些在你之前遇到过这个问题、寻求过帮助并得到解决方案的人。

这意味着你将花费更少的时间来调试与系统的兼容性问题,而将更多的时间用于交付可为公司带来影响的代码。

理由四:使用 Python 部署模型更容易

最后,在职业生涯中,你可能会达到这样的一个阶段:你希望能够将模型实时提供给任何一个最终用户。要解决这个问题,你需要构建一个基于 REST 的 Web 应用程序,使用 Python 的话,这件事就会变得很容易。

实际上,Python 拥有一些世界上最流行的 Web 应用程序框架,即 Django 和 Flask。你公司的内部部署工具更有可能就支持这些框架,而且相对来说不太可能会支持 R。

这些框架的流行也意味着它们得到了平台即服务提供商(如 Heroku、Amazon Lightsail 等)的良好支持。有了这些框架,你将能够在线发布你的个人项目,而所需的工作量仅相当于在 R 中部署相同项目所需工作量的一小部分。

最重要的是,如果你足够幸运,你的公司在自己的产品中已经使用了 Python 框架,那么学习 Python 就意味着你将有足够的危机感,连接你自己的应用内跟踪。若能够自主为你的模型捕获更多的特性,将会对你所能够带来的影响产生显著的效果。

当然,所有的决策都是需要权衡取舍的,选择学习 Python 而不是 R 也没有什么不同。尽管我个人认为 Python 对数据科学职业来说是更好的选择,但 Python 的缺点也同样值得考虑。

对我来说,Python 最大的缺点就是没有与 RStudio 相当的工具。Python 最有可比性的是 Jupyter Notebook,但我个人觉得 RStuduo 更好一些,因为它具有数据探索的功能。

作者注: 在写完本文后,Marcelo Garcia 指出可以使用免费的 Spyder 包作为 RStudio 的 Python 替代方案。但作者还没有机会尝试 Spyder,但是看起来很棒!

R 在学术界也非常流行,因此,R 中软件包的文档更有可能是直接引用学术研究。这些文档对于从事研究“前沿”工作的数据科学家来说非常有用。

但我并不认为 RStudio 的缺乏,就能足以否定 Python 的相对优势。而且,在数据科学学术界从业者也少得多,这使得 R 的研究相关优势对大多数数据科学家来说不那么重要了。

因此,尽管 R 有很多优点,但我相信如果你选择学习 Python,你的职业生涯将会受益匪浅。

最后,我认为值得一提的是,我并不认为学习 R 就是个糟糕的选择,只不过 Python 更可能是你职业生涯中的一个更好的选择而已。要根据你的具体情况,学习 R 对你来说也有可能更有意义。

不管你选择学习哪种语言,你都不应该觉得你永远不能改变主意。要知道,所有的编程语言的相似之处可要远远多于不同之处:学习第二门编程语言要比第一门编程语言容易得多。

实际上,我恰恰选择的就是先学习 R 的!因此,就算我现在建议将 Python 作为你职业生涯的更好选择,但我也很难对 R 发出太过强烈的警告。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1263

    浏览量

    69460
  • 编程语言
    +关注

    关注

    10

    文章

    1945

    浏览量

    34735
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84682
收藏 人收藏

    评论

    相关推荐

    Mathematica 在数据分析中的应用

    在数据分析领域发挥着重要作用。 1. 数据导入 在进行数据分析之前,首先需要将数据导入到Mathematica中。Mathematica支
    的头像 发表于 12-26 15:41 55次阅读

    《AI for Science:人工智能驱动科学创新》第6章人AI与能源科学读后感

    幸得一好书,特此来分享。感谢平台,感谢作者。受益匪浅。 在阅读《AI for Science:人工智能驱动科学创新》的第6章后,我深刻感受到人工智能在能源科学领域中的巨大潜力和广泛应用。这一章详细
    发表于 10-14 09:27

    AI for Science:人工智能驱动科学创新》第4章-AI与生命科学读后感

    研究的深入发展。 3. 挑战与机遇并存 尽管AI在生命科学领域取得了显著的成果,但也面临着诸多挑战。例如,数据隐私、算法偏见、伦理道德等问题都需要我们认真思考和解决。同时,如何更好地将
    发表于 10-14 09:21

    《AI for Science:人工智能驱动科学创新》第二章AI for Science的技术支撑学习心得

    人工智能在科学研究中的核心技术,包括机器学习、深度学习、神经网络等。这些技术构成了AI for Science的基石,使得AI能够处理和分析复杂的数据集,从而发现隐藏在数据中的模式和规律。 2. 高性能
    发表于 10-14 09:16

    《AI for Science:人工智能驱动科学创新》第一章人工智能驱动的科学创新学习心得

    学科之间的交叉融合,形成了一种全新的科学研究范式。AI技术打破了学科壁垒,使得物理学、化学、生物学、天文学等领域的研究者能够共享数据和算法,共同解决复杂问题。这种跨学科的合作不仅拓宽了科学
    发表于 10-14 09:12

    pytorch和python的关系是什么

    在当今的人工智能领域Python已经成为了最受欢迎的编程语言之一。Python的易学易用、丰富的库和框架以及强大的社区支持,使其成为了数据科学
    的头像 发表于 08-01 15:27 1959次阅读

    Python建模算法与应用

    Python作为一种功能强大、免费、开源且面向对象的编程语言,在科学计算、数学建模、数据分析等领域展现出了卓越的性能。其简洁的语法、对动态输入的支持以及解释性语言的本质,使得
    的头像 发表于 07-24 10:41 553次阅读

    Python怎么读取STM32串口数据

    =ser.readlines()print(s) 可是什么都读取不了。如果用买的STM32开发板送的串口助手,能接收到数据。板子上烧录的printf输出程序。 请问各位大神,Python程序要怎么写才能读取串口数据呢?跪求大神解
    发表于 04-24 07:30

    Python自动化测试框架及其应用

    Pytest是一个非常成熟的全功能的Python测试框架,与python自带的unittest测试框架类似,但是unittest框架使用起来更简洁,功能更强大。
    的头像 发表于 04-03 16:15 554次阅读
    <b class='flag-5'>Python</b>自动化测试框架及其应用

    半导体放电管TSS:原理及在电子领域的应用?|深圳创达电子EMC a

    半导体放电管TSS:原理及在电子领域的应用?|深圳创达电子EMC半导体放电管TSS是一种高压、高速、低电流的电子元件,广泛用于电力电子、通讯、光电子等领域。本文将从TSS的定义、工作原理、应用场
    发表于 03-06 10:07

    cyw20721对cyw20706哪个更好

    请教下:cyw20721对cyw20706,传输音频,那个有更好的特性呢
    发表于 03-01 08:44

    辐射RE整改:科学应对辐射环境,建设健康未来?|深圳创达电子EMC a

    辐射RE整改:科学应对辐射环境,建设健康未来?|深圳创达电子EMC近年来,辐射环境问题备受关注,为了构建更加健康的未来,辐射RE整改成为当务之急。本文将深入探讨辐射RE整改的重要性,并逐步介绍相关
    发表于 02-23 09:48

    超级电容器电池更好吗?

    超级电容器是一种新型的储能器件,主要用于断电后提供短期能量的后备电源,其能量密度介于普通电容和二次电池之间,同时具有高比容量和功率的特点。那超级电容器电池更好吗?让我们来从以下几点看看超级电容器
    发表于 02-18 15:38

    磁环在数据线上的应用及选择

    磁环在数据线上的应用及选择 随着科技的进步和发展,数据线已成为人们日常生活和工作中不可或缺的一部分。数据线起着连接设备和传输数据的重要作用。而在数据
    的头像 发表于 01-11 15:24 1210次阅读

    超级电容器电池更好吗?

    超级电容器是一种新型的储能器件,主要用于断电后提供短期能量的后备电源,其能量密度介于普通电容和二次电池之间,同时具有高比容量和功率的特点。那超级电容器电池更好吗?让我们来从以下几点看看超级电容器
    发表于 01-06 16:33