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

    文章

    1302

    浏览量

    73643
  • 编程语言
    +关注

    关注

    10

    文章

    1959

    浏览量

    38902
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89571
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    杰发科技车规级MCU在数字钥匙领域的应用

    芯片领军企业,杰发科技AutoChips在数字钥匙领域已取得显著成果,其MCU产品已在理想、埃安等车企的多款车型中得到应用。
    的头像 发表于 09-25 15:11 3251次阅读

    【「AI芯片:科技探索与AGI愿景」阅读体验】+AI的科学应用

    AI被赋予了人的智能,科学家们希望在没有人类的引导下,AI自主的提出科学假设,诺贝尔奖级别的假设哦。 AI驱动科学被认为是科学发现的第五个范式了,与实验
    发表于 09-17 11:45

    磁栅尺在数控机床领域的应用案例,一起来看看吧!

    磁栅尺在数控机床领域的应用案例:某汽车零部件企业曲轴加工:某汽车零部件企业在数控铣床、加工中心等设备中加装法国雷恩磁栅尺,可实时反馈刀具位置,将重复定位精度提升至 ±0.01mm,有效减少了因机械磨损导致的加工误差,使曲轴加工合
    的头像 发表于 09-15 15:02 407次阅读
    磁栅尺<b class='flag-5'>在数</b>控机床<b class='flag-5'>领域</b>的应用案例,一起来看看吧!

    NVIDIA AI助力科学研究领域持续突破

    随着 AI 技术的广泛应用,AI 正在成为科学研究的引擎。NVIDIA 作为重要的技术推手,持续驱动着 AI 系统解锁更多领域科学突破。
    的头像 发表于 08-05 16:30 958次阅读

    辰达半导体推出全新PowerTrench MOSFET MDDG03R01G

    在数据中心、工业自动化及新能源领域,MOSFET的导通损耗与动态响应直接影响系统能效。MDD全新PowerTrench系列MOSFET,结合屏蔽栅技术,突破传统性能瓶颈。其中MDDG03R01G以0.75mΩ超低导通电阻与300
    的头像 发表于 06-11 09:37 679次阅读
    辰达半导体推出全新PowerTrench MOSFET MDDG03<b class='flag-5'>R</b>01G

    是否可以在数据和电源中使用Cypd2122作为DRP?

    我想知道我是否可以在数据和电源中使用 Cypd2122 作为 DRP? 如果是,有任何参考设计或应用说明吗? 数据表说不推荐用于新设计,为什么?
    发表于 05-07 07:28

    零基础入门:如何在树莓派上编写和运行Python程序?

    是一种非常有用的编程语言,其语法易于阅读,允许程序员使用汇编、C或Java等语言更少的代码行。Python编程语言最初实际上是作为Linux的脚本语言而开发的。Py
    的头像 发表于 03-25 09:27 1523次阅读
    零基础入门:如何在树莓派上编写和运行<b class='flag-5'>Python</b>程序?

    了解DeepSeek-V3 和 DeepSeek-R1两个大模型的不同定位和应用选择

    ); 二者均支持API调用,可根据业务需求混合部署(如用V3处理前端交互,R1负责后端计算)。 在电子工程领域选用哪个模型最合适,有其他更好的模型推荐吗? 在电子工程领域的电路设计与
    发表于 02-14 02:08

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2213次阅读

    适用于MySQL和MariaDB的Python连接器:可靠的MySQL数据连接器和数据

    和 MariaDB 数据库服务器以及托管数据库服务,以对存储的数据执行创建、读取、更新和删除操作。该解决方案完全实现了 Python DB API 2.0 规范,并作为 Window
    的头像 发表于 01-17 12:18 844次阅读
    适用于MySQL和MariaDB的<b class='flag-5'>Python</b>连接器:可靠的MySQL<b class='flag-5'>数据</b>连接器和<b class='flag-5'>数据</b>库

    Flexus 云服务器 X:Python 安装的极致便捷之旅

    前言         Python 作为一种高级编程语言,因其简洁易读的语法和强大的库支持,在数据科学、人工智能、Web 开发等领域得到了广泛应用。然而,不同平台上的安装过程可能会有所
    的头像 发表于 01-07 17:00 546次阅读
    Flexus 云服务器 X:<b class='flag-5'>Python</b> 安装的极致便捷之旅

    Mathematica 在数据分析中的应用

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

    首个科学计算基座大模型BBT-Neutron开源,助力突破大科学装置数据分析瓶颈

    大语言模型能否解决传统大语言模型在大规模数值数据分析中的局限性问题,助力科学界大科学装置设计、高能物理领域科学计算? 高能物理是探索宇宙基本
    的头像 发表于 12-26 15:29 1131次阅读
    首个<b class='flag-5'>科学</b>计算基座大模型BBT-Neutron开源,助力突破大<b class='flag-5'>科学</b>装置<b class='flag-5'>数据</b>分析瓶颈

    cmp在数据处理中的应用 如何优化cmp性能

    CMP在数据处理中的应用 CMP(并行处理)技术在数据处理领域扮演着越来越重要的角色。随着数据量的爆炸性增长,传统的串行处理方法已经无法满足现代应用对速度和效率的需求。CMP通过将
    的头像 发表于 12-17 09:27 1756次阅读

    ADS1299+RK3399在数据采样的过程中,有数据丢失的情况怎么解决?

    我们在数据采样的过程中,发现有数据丢失的情况,通过逻辑分析仪发现,出现数据丢失时,时序存在问题。具体见下图: 从图中可以看出,DRDY出现了异常,CS也是异常。有谁遇到过这种情况? android系统 SPI 通讯方式。 有
    发表于 12-16 06:58