我刚刚完成了为期1年的数据科学硕士课程,在那里我们接受了R的教学。我发现Python更加流行,并且在AI领域拥有更大的社区。
对于我这种位置的人来说,切换到Python是否值得?如果可以,为什么?python是否具有R中没有的任何改变游戏规则的功能,或者仅仅是社区问题?
我刚刚完成了为期1年的数据科学硕士课程,在那里我们接受了R的教学。我发现Python更加流行,并且在AI领域拥有更大的社区。
对于我这种位置的人来说,切换到Python是否值得?如果可以,为什么?python是否具有R中没有的任何改变游戏规则的功能,或者仅仅是社区问题?
Answers:
我想重新提出您的问题。
不要考虑切换,而要考虑添加。
在数据科学中,无论是python还是r,您都可以走得很远,但是两者都可以走得最远。
借助该reticulate
软件包,Python和r的集成非常好。我经常整理r中的数据,因为它对我来说更容易,用python训练模型以受益于卓越的速度,并ggplot
在一个笔记本中以美观的方式可视化r中的结果!
如果您已经知道了放弃它是没有意义的,请在您明智且轻松的地方使用它。但是,将python添加到许多用途是100%的一个好主意。
一旦您对两种语言都感到满意,便可以拥有最适合自己的语言(最喜欢的语言)来工作的工作流程。
reticulate
。rstudio甚至对检查python有一些支持,并且正在添加更多内容
reticulate
允许R使用Python;类似地,rpy2
允许Python使用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)。
这些语言还有其他可能的优点和缺点。例如,两种语言都是动态的。但是,此功能既可以是优点也可以是缺点(并且与机器学习或统计信息并不严格相关),因此我没有在上面列出。由于明显的原因(例如,并非所有人都具有相同的编程经验),我避免提及固执己见的语言功能,例如代码的可读性和学习曲线。
如果您正在学习机器学习或统计学,那么绝对值得学习Python。但是,这并不意味着您将不再使用R。对于某些任务,R可能仍然更方便。
我没有这个选择,因为我被迫从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中实现的,但是它是如此的基础,以至于我无法意识到这对于某人来说是足够的。
我会说是的。在大多数任务上,Python比R更好,但是R具有它的优势,您仍然想在许多情况下使用它。
此外,学习第二语言将提高您的编程技能。
我对R vs Python的优势的看法是,我更喜欢R用于涉及表或图表的小型单一用途程序,或者以相同的方式进行探索性工作。我更喜欢Python来做其他所有事情。
要详细说明最后一点:乐高积木是您编写自己的积木(功能和模块)的很好的计算机编程方法。
程序通常会超出其原始设计进行修改和重新定位。在构建它们时,考虑哪些部分可以重复使用以及以一种通用的方式构建这些部分以使其插入其他模块中很有用。
R鼓励您将所有积木融化在一起。
听起来您已经为使用R的数据科学投入了1年时间,并且已嵌入到R环境中,但是您想探索用于数据科学的python。
首先学习python的基础知识,例如列表和元组的工作方式以及类和对象的工作方式。
然后,使用numpy matplotlib pandas之类的库来动手。学习tensorflow或keras,然后学习数据科学。