R语言和Python,python与r语言哪个好学

  R语言和Python,python与r语言哪个好学

  首先简单介绍一下R语言:

  R语言是由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman在1995年设计的(命名为R语言是因为他们的名字都以字母‘R’开头),现在由‘R核心开发团队’开发。

  虽然R主要用于数据分析、绘图和数据挖掘,但也用于矩阵计算。其计算速度堪比专门做矩阵计算的开源软件GNU Octave和商业软件MATLAB。

  起初,R主要用于学术研究,但近年来,它在商界也表现突出,这使得R成为世界上企业使用的增长最快的统计语言之一。

  看看什么时候选r比较好。

  1.1如果你的编程水平是新手,选择r。

  如果你的编程经验有限,建议先学R。

  Python可能对新的软件开发者有好处,但我觉得R更适合新的数据科学。

  但是数据科学和软件开发不是一回事。

  解释原因。

  这种差异可以归因于数据科学家和软件开发人员使用编程语言的不同。对于数据科学新手来说,程序应该是脚本,而不是软件。

  例如,我们使用R语言处理一个名为Auto:

  图书馆(ISLR)

  数据(“自动”)

  如果对R不熟悉,可以暂时忽略代码的具体含义。

  数据框是R语言中最常用的数据类型之一,按行列排列,有点类似Excel表格。

  在这个汽车数据框中有一个重量变量,它表示汽车的重量。我们想用它来创建一个新的变量weight_kg,单位是千克。

  有许多方法可以完成这项任务。最简单的方法是使用for循环遍历权重变量中的值,然后计算新变量的值。听起来有点麻烦。

  实际上,我们可以使用tidyverse包中已有的mutate函数直接计算新变量的值:

  变异(Auto,weight_kg=weight*0.45)

  同样,代码的含义可以忽略。

  这种方法避免了使用for循环,更加简单。其实在R中实现某个函数,只要知道用哪个函数和包,实现就会变得非常简单。

  在R中,你应该尽量利用现有的函数和包来完成相关的任务。没有必要创建自己的工具来处理任务。这意味着你不需要了解很多传统的编程概念。其实你应该避免使用这些概念,比如for循环、类、面向对象编程等软件开发概念。

  总之,相比Python,因为R的数据处理工具更完善,更易用,所以我觉得R更适合数据处理。

  其实Python也有很多直接处理数据的工具,比如熊猫包,但是Python的包和语法有软件开发的味道,依赖于一些软件开发概念(像for循环、类和面向对象等。).比如浏览一些Python书籍的时候,还是会看到For循环、类声明等的介绍。对于那些没有软件开发或计算机科学背景的新人来说,这些概念很难理解。

  相反,在很多情况下,即使没有任何编程经验,也可以利用好r的各种工具。

  1.2对于数据科学任务,R的语法更直观。

  对于数据处理任务,R的语法在很多情况下会更简单。函数和参数的命名设计也更好,便于记忆和使用。

  例如,我们将使用R和Python删除Iris数据框中的两个变量(由于R和Python都有Iris数据框,所以我们使用这个数据框)。

  Python的优势

  对于数据科学的初学者来说,虽然我强烈推荐学习R,但并不是唯一的选择。

  对于某些人来说,Python可能是最好的选择。先说说哪些情况下选择Python比较好。

  2.1如果你有软件开发或计算机科学的基础,学习Python

  如果你有软件开发经验或者你是计算机专业的,我觉得Python会更适合你。因为你已经有编程经验,使用Python会让你更得心应手。

  2.2想开发软件,学Python

  我已经说过R更擅长数据科学。如果要搭建软件系统,我觉得Python比较合适。Python的亮点是写软件,效率很高。正如一些专家所说,写Python代码就像写伪代码。

  另外,Python是一种通用语言,它几乎可以做任何事情。但是R是专精的,只擅长统计分析和可视化。

  我想澄清一下,不是说R不会写软件。只是更多的人喜欢用Python来构建产品软件。所以作为一个数据科学家,如果你想创建一个软件系统,我觉得Python比r更合适。

  2.3想搞机器学习,学Python

  如果你想长期学习机器学习,建议你学Python。

  其实R也有机器学习生态系统。特别是R的caret包开发的很好,它有能力完成各种机器学习任务。比如使用caret包建立回归模型,支持向量机(SVM),决策树(包括回归和分类),交叉验证等等。总之,R的机器学习生态系统发展的很好。

  不过Python对机器学习的支持出现的更早。为了实现各种机器学习方法,Python的scikit-learn库提供了更简洁易读的语法。而且R里面的caret包语法有时候有点差。尤其是caret包和Tidyverse包兼容性不是很好,输出结果有时候很难处理。相反,Python的scikit-learn库与Python的生态环境结合得很好。

  市面上有很多关于机器学习的书籍,他们的很多算法实现都是用Python写的。

  总之,如果你想投身于机器学习,我觉得Python会更好。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: