Python 和 R 用于数据科学的优缺点

数据挖掘 Python r
2022-03-02 06:06:02

所以,让我们首先说我不是在问哪个更好。

我喜欢这两种用于数据科学的语言,我认为这是一个问题,而不是或,因为没有必要选择其中一种。我的普遍看法是,R 具有更多的数据科学深度,而 Python 在应用多样性方面具有更大的广度。

我将从我自己的一些零散的观点开始。

Python

我倾向于使用 Python 作为首要语言(有时使用它在 R 中执行脚本),因为:

在 Mac 和许多 *nix 设置上安装标准 易于在有安全限制的环境中安装/设置 拥有一套很棒的工具是否我想: 建立网站 与 Apache 工具套件交互 构建管道 构建和评分预测模型开发应用程序/前端 如果我遇到困难并需要在这里提问 调试/单元测试 自动文档 有更多的受众 一个很好的例子是在夏天构建一个机器人 一些面部识别的东西。Raspbery Pi 默认带有 Python,传感器有 Python API,我遇到的一些 Web API 有 Python API 可用。这将是一个很难使用 R 的应用程序。

R

我喜欢使用 R 进行早期数据解释,因为数据表倾向于比 Pandas 更快地将更大的集合加载到内存中,并且一般环境对于探索性内容似乎更成熟。如果我需要混合模型或类似的不是机器学习“面包和黄油”的东西,R 更有可能拥有我需要的东西。sklearn 非常好,但感觉不像我在 R 中的那样完美。

在数据方面,ggplot2 显然比 matplotlib 好(基于 html 的东西在 IP 和安全限制繁重的环境中很难共享,所以我倾向于倾向于简单的东西。)

你如何使用它们?

你如何与这些语言互动?你把它们混合在一起吗?专一?你的理由是什么?优势劣势?

1个回答

交互 - 随机事实

  1. 两者都是具有有趣互补品质的良好稳定语言。您可以在一个包中获得更好的包,然后将它们与另一个包中的一些数据拼接起来。一个例子是在 R 中使用时间序列预测和决策树,并在 Python 中进行数据处理。

  2. 两种语言相互借鉴。即使是经验丰富的软件包开发人员也喜欢Hadley Wickham (Rstudio)借钱Beautiful Soup (python)来进行rvest网络抓取。除此之外,还Yhat借用sqldf了 makepandasql和许多其他的东西。

  3. 与其在其他语言中重新发明轮子,开发人员可以专注于创新,因为最终,客户并不关心代码是用哪种语言编写的,客户关心的是洞察力

把它们混合起来

我提到了几种将它们混合在一起的方法-

  1. 使用 Python 包rpy2在 Python 中使用 R。[演示]

  2. 在 R 中使用 Python 使用rPython package. [演示]

  3. JupyterIR Kernel. _ Python 和 R,并使 iPython 的交互性可用于其他语言。

  4. 使用烧杯笔记本它允许您以简化的方式从一个代码块中的一种语言切换到另一个代码块中的另一种语言,以传递共享对象。

Python 与 R

Python vs R - 本节将回答:

  • 哪个会更好?
  • 如何选择一个而不是另一个?
  • 专业化

正如我之前所说,两者都是稳定的,您可以选择任何一个或同时使用两者。但是,当谈到掌握一门课程时,我建议您牢记这 3-4 条准则-

个人喜好

根据您的个人喜好选择开始的语言,这对您来说更自然,从一开始就更容易掌握。为了让您了解会发生什么,数学家和统计学家往往更喜欢 R,而计算机科学家和软件工程师往往更喜欢 Python。

项目选择

您还可以根据您知道您将在数据研究中从事的项目进行 Python 与 R 调用。如果您正在使用为您收集和清理的数据,并且您的主要重点是分析该数据,请使用 R。如果您必须处理脏数据或混乱数据,或者从网站、文件、或其他数据源,您应该开始学习 Python 或推进您的学习。

合作

一旦您掌握了数据分析的基础知识,另一个评估哪种语言可以提高您的技能的标准是您的队友使用哪种语言。如果你们都说同一种语言,那么协作以及相互学习会变得更加容易。

人才市场

与 R 相比,需要 Python 技能的工作在过去几年中同样增加了。

注意:请查看DataCamp提供的此信息图为了更好地了解它。

我的理由

在我的情况下,我正在同时使用它们并以交互方式使用它们并根据我的使用自定义它们。您可以在其中一个中获得一些非常有趣的东西(正如我上面提到的),而在另一个中几乎不可用,因此最好将两者一起使用。这是弥合这两者之间差距的最佳方式。

但最后,您需要牢记指导方针、您的兴趣和场景,并对此有清晰的认识。

优势与劣势

R

力量

  • R 非常适合原型设计和统计分析。
  • 它有大量可用于不同统计类型分析的库。检查综合R 档案
  • RStudio IDE 绝对是一大优势。它简化了大多数繁琐的任务并加快了您的工作流程。

弱点

  • 语法有时可能会晦涩难懂。
  • 很难集成到生产工作流程中。
  • 在我看来,它更适合consultancy-type任务。
  • 库文档并不总是用户友好的。

Python

力量

  • Python 非常适合编写脚本和自动化不同的数据挖掘管道。它是当今事实上的脚本语言。
  • 它还可以轻松集成到生产工作流程中。此外,它还可以用于您的软件工程团队的不同部分 (back-end, cloud architecture etc.)
  • scikit-learn 库非常适合机器学习任务。
  • Ipython(及其笔记本)也是一个用于探索性分析和演示的强大工具。

弱点

  • 它在统计分析方面不如 R 彻底,但近年来它已经取得了长足的进步
  • 在我看来,学习曲线比 R 更陡峭,因为你可以用 Python 做更多的事情。

结论

使用 R 和 Python。了解它们如何协同工作。从一个开始,然后将另一个添加到您的工作流程中。正如我想提醒自己的那样——“选择工具永远不应该是首要问题”如有疑问,请使用可用且可以快速完成工作的那个。

希望能帮助到你!

Ref- Udacity、Quora、Letustweak、kD、DataCamp