Python Vs R:数据科学家的永恒问题

简介: Python和R是当今数据科学最常用的两种语言。 它们都是完全开源的产品,并且可以根据GNU公共许可证的要求完全免费使用和修改。但哪一个更好? 而且,更重要的是,你应该学习哪一个?两者都被广泛使用,并且是每个数据科学家手中的标准工具。

Python和R是当今数据科学最常用的两种语言。 它们都是完全开源的产品,并且可以根据GNU公共许可证的要求完全免费使用和修改。但哪一个更好? 而且,更重要的是,你应该学习哪一个?两者都被广泛使用,并且是每个数据科学家手中的标准工具。答案可能让您感到惊讶 - 因为作为专业数据科学家,您应该准备好应对这两者。

Python有一些使用案例,R也是如此。使用它们的场景各不相同。 更常见的是环境以及客户或雇主的需求决定了Python和R之间的选择。许多事情在Python中都比较容易。 但R也在您的开发工具包中占有一席之地。

python

Python是Guido Van Rossum于1991年发布的通用编程语言。
从那时起,Python已在多种环境中用于多种用途,包括但不限于:
●Web开发(Django)
●Web微服务(Flask)
●适用于Python的Zappa无服务器框架
●TensorFlow(深度学习机器学习模型)
●Keras(简化TensorFlow开发的高级抽象)

Python闪耀的另一种情况是现有的数量众多的库,这些库很容易获得并且可以开源使用。 PyPI(Python Package Index的简称)存储库中提供了大量软件包,包含超过121k的软件包,可以在不同的抽象级别自动执行许多编程任务,使程序员的生活变得轻松。 PyPI的软件包中至少有6k专注于数据科学。 Python在可读性方面也很出色。与R相比,Python更容易阅读和理解。 Python比R更快,在某些情况下显着更快。

R

R是由统计学家为统计学家设计的统计学家编程语言。它起源于90年代的George Ross Ihaka和Robert Gentleman。 R擅长学术用途并掌握在统计学家手中。在统计学方面接受过正规培训的人,如统计学位,发现与R合作非常简单。 R软件包或库的存储库称为CRAN(Comprehensive R Archive Network),包含近12k软件包,其中大约一半用于数据科学。 R还擅长数据可视化。一次性分析数据通常更简单,更容易在R中表达。

此外,曾几何时,使用Python意味着将许多库链接在一起,其中一些库在功能修订和库更新后会变得不兼容。由于Anaconda,这已不再适用 - 见下文。在很短的时间内,深度学习严格来说就是一个Python功能 - 它在很短的时间内将机器学习世界的平衡转向了Python。然而,随着R中TensorFlow的Keras的发布,该因素也发生了变化,现在可以在R中使用深度学习模型。

所以答案是什么?你应该使用哪一个?

答案 - 两者兼而有之。

Continuum Analytics的Anaconda发行版完全改变了了机器学习现状。 Anaconda支持Python和机器学习所需的标准库 - NumPy,SciPy,Pandas,SymPy,Seaborn,Matplotlib - 以及完全支持R和一个名为R Studio的出色IDE。
对于深度学习,它支持TensorFlow,Theano,Caffe,Scikit-Learn和Torch。其最显着的特点之一是引入了Jupyter Notebook,这是一个集成平台,支持在同一环境中使用Python和R,同时保持所有开源。
另一个选项是Atom文本编辑器的Hydrogen插件。它允许您输入可在Jupyter Notebook中使用的任何代码,并在编辑器中返回结果。但是,它仍处于alpha状态,并在本地计算机上出现错误而崩溃。 Jupyter Lab应用程序允许在相同的环境中编辑Python和R笔记本,使用独立甚至远程内核的概念。因此,Python在机器学习方面表现优异,而R在统计学方面表现优异。但是你为什么要学习两者?

因为专业数据科学家需要非常详细地了解机器学习算法背后的统计数据和数学知识。

我们将研究两个SVM机器学习模型,一个通过Python代码,另一个通过R代码。这将为我们提供两种语言如何工作的良好画面。

img_b245e6325e876f633bf613a1e1a445e0.png
carbon.png

img_f60d38bff195feec1a524bd96d016723.png

R代码
该程序使用虹膜数据集来说明非线性SVM分类器的使用。 这段代码故意稍微复杂一些,因为它将ML技术应用于完整的内置数据集 - 虹膜数据集 - 用于说明传统ML技术容量的规范数据集之一。 这段代码还说明了R的内置统计函数的用法。
在执行下面的代码之前,您需要安装R包e1071并通过调用库(e1071)将其添加到编译列表中。 但不要担心 - 在R Studio中安装新软件包非常简单。


img_48909d7e18a8562a4ccb1b86724b6c8c.png
img_a1ea4404cbd28ff295dc44dbd1c96289.png

正如您所看到的,R代码在其图形和统计能力方面基本上比Python更强大。作为统计学家的统计学家的语言,如果你有统计学背景,使用R将是你在数据科学新职业生涯中最好的启动板。

结论

因此,当谈到在Python和R之间进行选择时,任何数据科学家都会知道他应该知道两者。
那么,在Python与R之间,总结一下:
两者都在数据科学中执行类似的任务,但是针对不同的领域进如果您是软件工程师,请选择Python。如果您是学术研究员,请选择R.
如果您是数据科学家 - 请同时选择两者。

目录
相关文章
|
17天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
7月前
|
机器学习/深度学习 数据可视化 数据挖掘
为什么Python是数据科学家的首选语言
为什么Python是数据科学家的首选语言
32 0
|
C++ Python
VS Code按住ctrl不能跳转到定义/函数(Python)
VS Code按住ctrl不能跳转到定义/函数(Python)
1658 0
VS Code按住ctrl不能跳转到定义/函数(Python)
|
3月前
|
存储 C++ Python
Python 教程之运算符(8)—— Inplace vs Standard 运算符
Python 教程之运算符(8)—— Inplace vs Standard 运算符
23 0
|
4月前
|
存储 C++ Python
Python 教程之运算符(8)—— Inplace vs Standard 运算符
Python 教程之运算符(8)—— Inplace vs Standard 运算符
24 0
|
4月前
|
算法 C++ Python
Python之经典类VS新式类和Supper
Python之经典类VS新式类和Supper
28 0
|
9月前
|
SQL 缓存 安全
Python web 框架对比:Flask vs Django
Python web 框架对比:Flask vs Django
|
11月前
|
算法 C++ Python
python中函数递归VS循环
python中函数递归VS循环
|
存储 算法 编译器
R vs. Python vs. Julia
R vs. Python vs. Julia
181 0
R vs. Python vs. Julia
|
IDE 开发工具 C++
vs code 配置python
vs code 配置python
198 0
vs code 配置python