r语言和python应该选择哪个-创新互联
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达10多年累计超上千家客户的网站建设总结了一套系统有效的全网推广解决方案,现已广泛运用于各行各业的客户,其中包括:成都发电机回收等企业,备受客户表扬。这篇文章将为大家详细讲解有关r语言和python应该选择哪个,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
先简要介绍下R:
R语言由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman于1995设计出来(由于两人的名字均以 ‘R’ 字母开头,因此命名为R语言),现在由“R核心开发团队“负责开发。
虽然R主要用于数据分析、绘图以及数据挖掘,但也有人用作矩阵计算。其计算速度可媲美专用于矩阵计算的开源软件GNU Octave和商业软件MATLAB。
起初R主要在学术研究中使用,但近年来在企业界也表现突出,这使得R成为企业中使用的全球发展最快的统计语言之一。
我们看看什么情况下选R更好。
1.1 如果你的编程水平是菜鸟级,选R
如果你的编程经验有限,推荐先学R。
对于软件开发新手来说,Python可能不错,但是我认为R更适合数据科学新手。
但是数据科学和软件开发不是同一回事。
解释一下为什么。
这种差异可归结为:数据科学家使用编程语言的方式与软件开发者不一样。对于数据科学新手来说,程序(programs)应该是脚本(scripts),而不应该是软件(software)。
举个例子,我们用R语言处理一个叫Auto数据框(dataframe):
library(ISLR)
data('Auto')
如果对R不熟悉,代码的具体意义可暂时不理会。
数据框是R语言中最常用的数据类型之一,以行列的形式排布,有点类似Excel表格。
在这个Auto数据框中有个weight变量,表示汽车的重量。我们想利用它来创建一个以公斤为单位的新变量weight_kg。
有很多方法可以实现这个任务。最容易想到的方法是:利用for循环遍历weight变量中的值,然后计算出新变量的值。听起来有点麻烦。
其实我们可以利用tidyverse包中已有的mutate函数直接计算出新变量的值:
mutate(Auto, weight_kg=weight*0.45)
再次提示,代码的意义可先不理会。
这个方法避免使用for循环,更简单。事实上,在R中要实现某种功能,只要你知道要用哪个函数和哪个包,实现将会变得非常简单。
在R中,你应该尽量使用已有函数和包来完成相关任务,没必要自己创建工具来处理任务。这意味着你不需要知道很多传统意义上的编程概念。事实上你应该避免使用这些概念,比如:for循环、类、面向对象编程以及其它软件开发概念。
总之,相比Python,由于R的数据处理工具开发得更好且更容易使用,我认为R更适合做数据处理。
其实Python也有很多工具来直接处理数据,比如pandas包,但是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包建立回归模型(regression model)、支持向量机(SVM)、决策树(包括回归和分类)以及执行交叉验证(cross validation)等等。总之,R的机器学习生态系统发展得很好。
但是,Python在机器学习方面的支持出现更早。为实现各种不同机器学习方法,Python的scikit-learn库提供了一套更加简洁和易读的语法。而R中caret包的语法有时有点拙劣。尤其,caret包与Tidyverse包兼容得不是很好,输出的结果有时也很难处理。相反,Python的scikit-learn库与Python生态环境整合得很好。
市面上有关机器学习的书籍,其算法实现很多都是用Python写的。
总之,如果你想致力于机器学习,我认为Python会更好。
关于r语言和python应该选择哪个就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
标题名称:r语言和python应该选择哪个-创新互联
标题网址:http://ybzwz.com/article/dgeips.html