R vs Python – 它们之间的区别

R 和 Python 的主要区别

  • R 主要用于统计分析,而 Python 为数据科学提供了更通用的方法
  • R 的主要目标是数据分析和统计,而 Python 的主要目标是部署和生产
  • R 用户主要包括学者和研发人员,而 Python 用户主要是程序员和开发人员
  • R 提供了使用可用库的灵活性,而 Python 提供了从头开始构建新模型的灵活性
  • R 在开始时很难学习,而 Python 则线性且平滑地学习
  • R 集成在本地运行,而 Python 与应用程序集成良好
  • R 和 Python 都可以处理大量数据库
  • R 可以用于 R Studio IDE,而 Python 可以用于 Spyder 和 Ipython Notebook IDE
  • R 包含各种包和库,如 tidyverse、ggplot2、caret、zoo,而 Python 包含 pandas、scipy、scikit-learn、TensorFlow、caret 等包和库

R 和 Python 都是开源编程语言,拥有庞大的社区。新库或工具不断添加到它们各自的目录中。 R 主要用于统计分析,而 Python 为数据科学提供了更通用的方法。

R 和 Python 在面向数据科学的编程语言方面都处于领先地位。学习它们两者当然是理想的解决方案。R 和 Python 需要时间和精力投入,而并非每个人都有这样的奢侈。Python 是一种通用的、具有可读语法的语言。然而,R 是由统计学家构建的,并包含了他们特定的语言。

回车符

学者和统计学家花了二十多年时间开发 R。R 现在拥有最丰富的生态系统来执行数据分析。CRAN(开源存储库)中有大约 12000 个包。你可以找到一个库来执行你想要进行的任何分析。丰富的库种类使 R 成为统计分析的首选,尤其是在专业分析工作方面。

R 和其他统计产品之间的关键区别在于输出。R 拥有出色的工具来传达结果。Rstudio 附带 knitr 库。Xie Yihui 编写了这个包。他让报告变得轻而易举且优雅。通过演示文稿或文档传达发现很容易。

Python

Python 可以处理与 R 几乎相同的任务:数据整理、工程、特征选择、网络抓取、应用程序等等。Python 是大规模部署和实现机器学习的工具。Python 代码比 R 更易于维护,也更健壮。几年前,Python 没有多少数据分析和机器学习库。最近,Python 正在追赶,并为机器学习或人工智能提供了尖端的 API。大多数数据科学工作都可以通过五个 Python 库来完成:Numpy、Pandas、Scipy、Scikit-learn 和 Seaborn。

另一方面,Python 比 R 更容易实现可复制性和可访问性。事实上,如果你需要在应用程序或网站中使用分析结果,Python 是最佳选择。

流行度指数

IEEE Spectrum 排名是量化编程语言流行度的指标。左侧列显示了 2017 年的排名,右侧列显示了 2016 年的排名。2017 年,Python 排名第一,而一年前排名第三。R 排名第六。

工作机会

下图显示了与数据科学相关的编程语言工作数量。 SQL 遥遥领先,其次是 Python 和 Java。R 排名第五。

Job Opportunity R vs Python
工作机会 R vs Python

如果我们关注 Python(黄色)和 R(蓝色)的长期趋势,我们可以看到 Python 在工作描述中比 R 被引用的次数更多。

R 和 Python 完成的分析

然而,如果我们看数据分析工作,R 是迄今为止最好的工具。

Analysis done by R and Python

切换百分比

下图中有两个关键点。

  • Python 用户比 R 用户更忠诚
  • R 用户转向 Python 的百分比是 Python 转向 R 的两倍。

Percentage of People Switching

R 和 Python 之间的区别

参数 回车符 Python
目标 数据分析和统计 部署和生产
主要用户 学者和研发 程序员和开发人员
灵活性 易于使用现有库 易于从头开始构建新模型。即,矩阵计算和优化
学习曲线 起初很难 线性且平滑
编程语言的流行度。百分比变化 2018 年为 4.23% 2018 年为 21.69%
平均工资 $99.000 $100.000
集成 本地运行 与应用程序集成良好
任务 易于获得主要结果 适合部署算法
数据库大小 处理海量数据 处理海量数据
集成开发环境 (IDE) Rstudio Spyder, Ipython Notebook
重要的包和库 tidyverse, ggplot2, caret, zoo pandas, scipy, scikit-learn, TensorFlow, caret
缺点
高学习曲线
库之间的依赖关系
库不如 R 多
优点
  • 图表是用来交流的。R 使其美观
  • 数据分析的庞大目录
  • GitHub 界面
  • RMarkdown
  • Shiny
  • Jupyter notebook:Notebooks 有助于与同事共享数据
  • 数学计算
  • 部署
  • 代码可读性
  • 速度
  • Python 中的函数

R 或 Python 的使用

Python 由计算机专家 Guido van Rossum 于 1991 年左右开发。Python 对数学、统计和人工智能拥有有影响力的库。你可以将 Python 视为机器学习领域的纯粹玩家。然而,Python 在计量经济学和沟通方面(尚未)完全成熟。Python 是机器学习集成和部署的最佳工具,但不适合业务分析。

好消息是 R 是由学者和科学家开发的。它旨在解决统计问题、机器学习和数据科学。R 是数据科学的正确工具,因为它拥有强大的沟通库。此外,R 配备了许多用于时间序列分析、面板数据和数据挖掘的包。最重要的是,没有比 R 更好的工具了。

在我们看来,如果你是数据科学的初学者,并且具备必要的统计学基础,你需要问自己以下两个问题:

  • 我想了解算法是如何工作的吗?
  • 我想部署模型吗?

如果这两个问题的答案都是肯定的,你可能应该先学习 Python。一方面,Python 包含了强大的库来处理矩阵或编写算法。作为初学者,从头开始构建模型然后切换到机器学习库中的函数可能会更容易。另一方面,你已经了解了算法或想立即进行数据分析,那么 R 和 Python 都可以作为开始。如果你要专注于统计方法,R 有一个优势。

其次,如果你想做比统计更多的事情,比如部署和可重复性,Python 是更好的选择。如果你需要写报告和创建仪表板,R 更适合你的工作。

总而言之,R 和 Python 之间的统计差距正在缩小。大多数工作都可以通过这两种语言完成。你应该选择最适合你需求的那一个,也要选择你的同事使用的工具。当你们都说同一种语言时会更好。掌握了第一门编程语言后,学习第二门就会更简单。

结论

最终,R 或 Python 的选择取决于:

  • 你任务的目标:统计分析或部署
  • 你可以投入的时间
  • 你的公司/行业最常用的工具