从R转换为Python是否值得?[关闭]


31

我刚刚完成了为期1年的数据科学硕士课程,在那里我们接受了R的教学。我发现Python更加流行,并且在AI领域拥有更大的社区。

对于我这种位置的人来说,切换到Python是否值得?如果可以,为什么?python是否具有R中没有的任何改变游戏规则的功能,或者仅仅是社区问题?


2
它是在公立大学,私立大学还是在公司教育系统中开设课程?
曼努埃尔·罗德里格斯

12
您无法切换到Python。您并不是在谈论已经用R编写的项目,而是想将其移植到Python,您只是在问学习Python(不要忘记R)。值得学习Python吗?如今,如果您使用计算机处理与数据处理相关的任何事情,几乎不可能学习Python ...
lvella

1
我不确定为什么没有基于意见发表意见,但我很高兴。
Evorlor

1
@Evorlor看到我的答案,确实表明该问题将导致主要基于意见的答案。此外,尽管我也给出了答案,但我还是以主要基于观点的方式投票结束了这个问题。在这个网站上,有很多这类问题。我现在不确定这是否是一件好事,但是目前对这个问题的回答对很多人都是有用的。
nbro

2
这怎么不关门?这是一个基于规范意见的问题。
spacetyper

Answers:


60

我想重新提出您的问题。

不要考虑切换,而要考虑添加。

在数据科学中,无论是python还是r,您都可以走得很远,但是两者都可以走得最远。

借助该reticulate软件包,Python和r的集成非常好。我经常整理r中的数据,因为它对我来说更容易,用python训练模型以受益于卓越的速度,并ggplot在一个笔记本中以美观的方式可视化r中的结果!

如果您已经知道了放弃它是没有意义的,请在您明智且轻松的地方使用它。但是,将python添加到许多用途是100%的一个好主意。

一旦您对两种语言都感到满意,便可以拥有最适合自己的语言(最喜欢的语言)来工作的工作流程。


我完全同意你的观点。只需添加它,并尽量不要放弃您的R技能。
延斯·科尔

3
为...投票reticulate。rstudio甚至对检查python有一些支持,并且正在添加更多内容
blues

两者都使用的唯一问题是,使下游的其他所有人也依赖R和Python。尽管我同意“增加”您的技能,但我在编写脚本时仍会保持纯洁!
PascalVKooten

reticulate允许R使用Python;类似地,rpy2允许Python使用R。具有类似目的的编程语言之间有某种互相交谈的方式,这很常见。
JG

究竟。不要以您的工具进行交易,而要在您的皮带上增加一个。现在,您有了更多工具,可以更好地解决更多问题。
桅杆

28

当然,这类问题也将主要导致基于意见的答案。但是,可以列举每种语言在机器学习,统计和数据分析任务方面的优势和劣势,我将在下面列出。

[R

长处

  • R是为统计人员和数据分析人员设计和开发的,因此它提供了, 了开箱用的功能(即,它们本身是语言的一部分),功能和设施,除非您使用Python,否则这些功能不可用。安装相关的软件包。例如,除非安装著名的Python pandas软件包,否则Python不会提供数据框。还有其他示例,例如矩阵,向量等。在Python中,也有类似的数据结构,但是它们更通用,因此并非专门针对统计学家。

  • 有很多统计资料库。

弱点

蟒蛇

长处

  • 许多人和公司,包括Google和Facebook,都在Python上投入了大量资金。例如,TensorFlow和PyTorch(两种广泛使用的机器学习框架)的主要编程语言是Python。因此,Python至少要再有5到10年的时间才能继续在机器学习中被广泛使用的可能性很小。

  • Python社区可能比R社区大很多。实际上,例如,如果您查看Tiobe的索引,则Python位于第3位,而R位于第20位。

  • Python在统计或机器学习社区之外也被广泛使用。例如,它用于Web开发(例如,参见Python框架Django或Flask)。

  • 有很多机器学习库(例如TensorFlow和PyTorch)。

弱点

  • 除非您安装适当的软件包,否则它不会立即提供R提供的统计和数据分析功能。根据您的哲学观点,这可能是缺点,也可能是优点。

这些语言还有其他可能的优点和缺点。例如,两种语言都是动态的。但是,此功能既可以是优点也可以是缺点(并且与机器学习或统计信息并不严格相关),因此我没有在上面列出。由于明显的原因(例如,并非所有人都具有相同的编程经验),我避免提及固执己见的语言功能,例如代码的可读性和学习曲线。

结论

如果您正在学习机器学习或统计学,那么绝对值得学习Python。但是,这并不意味着您将不再使用R。对于某些任务,R可能仍然更方便。


3
似乎“开箱即用”功能集无关紧要。相关的事情是可以提供所需功能的软件包,不是吗?
院长麦格雷戈

1
@DeanMacGregor如果您无法访问互联网,则此功能很重要!此外,如果编程语言已经提供了开箱即用的功能,则您不必浪费时间寻找它。
nbro

考虑到Python在“包括电池”方面有很多困扰,因此它的弱点并不是您经常遇到的缺点。特别是由于正在使用Python安装,其中确实包含统计软件包。特别是对于数据科学,Anaconda非常受欢迎,可以解决您的紧迫问题。
桅杆

6

我没有这个选择,因为我被迫从R转到Python:

这取决于您的环境:当您嵌入工程师部门,工作的技术小组或类似Python的组织时,这更可行。

当您被科学家尤其是统计学家所包围时,请与R呆在一起。

PS:R也提供了keras和tensorflow,尽管它是在python的幕后实现的。只有非常高级的东西才会使您需要Python。尽管我越来越习惯于Python,但R中的synthax 更加容易。尽管每个软件包都有自己的软件包,但在某种程度上却是一致的,而Python却没有。.ggplot非常强大。Python有一个克隆(plotnine),但缺少几个(重要)功能。原则上,您可以在R中完成几乎所有操作,但是特别是在R中,可视化和数据整理要容易得多。因此,最著名的Python库pandas是R 的克隆

PSS:高级统计信息绝对针对R。Python为数据科学家提供了许多日常工具和方法,但它永远无法达到R提供的那些> 13,000包。例如,我必须进行逆回归,而python不提供此功能。在R中,您可以在多个置信度测试以及线性还是非线性之间进行选择。混合模型也是如此:它是在python中实现的,但是它是如此的基础,以至于我无法意识到这对于某人来说是足够的。


4

我会说是的。在大多数任务上,Python比R更好,但是R具有它的优势,您仍然想在许多情况下使用它。

此外,学习第二语言将提高您的编程技能。

我对R vs Python的优势的看法是,我更喜欢R用于涉及表或图表的小型单一用途程序,或者以相同的方式进行探索性工作。我更喜欢Python来做其他所有事情。

  • R 非常适合表格混搭。如果特定程序要做的大多数事情是将某些表压缩为不同的形状,那么R是必须选择的东西。Python有用于此目的的工具,但是R是为此目的而设计的,并且做得更好。
  • 每当需要制作图表时,都应该切换到R,因为ggplot2是API可用性的杰作,而matplotlib令人毛骨悚然的恐怖。
  • Python是为通用编程而精心设计的。它具有一组精心设计的标准数据结构,标准库和控制流语句。
  • R不太适合通用编程。它不能很好地处理树形或图形数据。它有一些规则(例如能够查看和修改您的父范围),这些规则可以立即方便使用,但是使用时会导致程序难以增长,修改或编写。
  • R也有一些直接不好的东西。这些大多只是历史遗留物,例如三个不同的对象系统。

要详细说明最后一点:乐高积木是您编写自己的积木(功能和模块)的很好的计算机编程方法。

程序通常会超出其原始设计进行修改和重新定位。在构建它们时,考虑哪些部分可以重复使用以及以一种通用的方式构建这些部分以使其插入其他模块中很有用。

R鼓励您将所有积木融化在一起。


1

正如其他人所说,这不是“开关”。但是值得在您的武器库中添加Python吗?我肯定会说。在数据科学中,Python越来越流行,而R则有所下降。在机器学习和神经网络领域,我想说Python是现在的主要语言-我认为R在使用方面并没有那么接近。所有这些的原因是普遍性。Python是一种通用的编程语言,可让您轻松编写各种任务的脚本。如果您严格地呆在一个整洁的结构化统计世界中,那么R就是很棒的选择,但是使用AI时,您常常不得不做一些新颖的杂项事情,而且我认为R不能在这方面胜过Python。因此,


0

这完全是我个人的看法。

我在办公室(建筑工地)读到“每项任务都有正确的工具”。

我希望我作为一名程序员能够面对各种各样的任务。我需要尽可能多的“购买或投资”工具。有一天,一种工具可以帮助我解决问题,而另一天则可以使用其他工具。R(用于统计)和Python(用于一般)是我绝对想要的两个工具,我认为这对我来说是值得投资的。

就switch而言,我将使用我所知道的最有效的工具(效率由客户的需求,时间和成本投资以及编码的难易程度来衡量)。我知道的工具越多,越好!当然,它有实际的限制。

所有这些都是我的个人观点,不一定正确。


0

听起来您已经为使用R的数据科学投入了1年时间,并且已嵌入到R环境中,但是您想探索用于数据科学的python。

首先学习python的基础知识,例如列表和元组的工作方式以及类和对象的工作方式。

然后,使用numpy matplotlib pandas之类的库来动手。学习tensorflow或keras,然后学习数据科学。


-1

追两只兔子的人都没抓到

是的,Python更受欢迎。我在这两个地方都工作,但是从商务角度来说,在Python上找到工作比在R中容易。

因此,您可以:

  • 选择Python,因为它更受欢迎。但是,您必须从头开始。

要么

  • 毕竟,与R呆在一起,您需要接受一年的R培训。但是它并不受欢迎。

这里的建议是,学习一种额外的编程语言会以某种方式使您情况恶化,这是胡说八道。学习其他编程语言,尤其是不熟悉的编程语言,将始终提高您使用任何一种语言的程序员的技能。
威尔·达席尔瓦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.