为什么R用于数据科学 - 而不是Python?

那里有数百种编程语言,例如,采用一种字母编程语言的整个字母表。在数据科学领域,有两大竞争者:R和Python。现在为什么这个博客关于R而不是Python?

我必须坦白:我真的很想要Python。我深入研究了语言及其扩展。然而,它从来没有真正对我有用。我认为其中一个问题是Python试图成为每个人的宠儿。它可以做任何事情......和它相反。不,真的,它是学习编程的好语言,但我认为它有一些非常严重的缺陷。我在这里列出了一些:

  • 它从使用哪个版本开始!当前版本的版本号为3,但仍然有很多代码基于以前的版本号2.问题是没有向后兼容性。甚至print命令的语法都改变了!* 接下来要选择哪个发行版!对于R用户来说,似乎是一个笑话对于Python用户来说是一个悲伤的现实:那里有各种不同的发行版。最着名的数据科学是Anaconda:https//www.anaconda.com/。其中一个原因是Python中的整个包系统很乱。为了给你一个例子,看看官方文档:https//packaging.python.org/tutorials/installing-packages/ - 七(!)页面基本上是R中的一个命令:( install.packages()我知道,这不完全公平,但你明白了。* 有几个GUI,不可否认,这也是一个品味的问题,但在我看来,当谈到数据科学任务 - 你需要在线工作和脚本的组合 - 没有比这更好的GUI来自微软的RStudio(现在有Rodeo,免费下载:https//www.yhat.com/products/rodeo,但我不知道它有多成熟)。* 何时使用函数以及何时在对象上使用方法没有一般规则。这个问题的原因就是我上面所说的:Python希望成为每个人的宠儿,并试图同时实现一切。在这个有启发性的讨论中,不仅可以看到我,人们争相找到何时使用的标准:https//stackoverflow.com/questions/8108688/in-python-when-should-i-usea-a-功能代替方法。这里可以找到一个具体的例子,其中解释了为什么函数any(df2 == 1)给出了错误的结果,你必须使用例如方法(df2 == 1).any()。非常容易混淆和容易出错。* 更复杂的数据科学数据结构不是核心语言的一部分。例如,您需要用于向量的NumPy包和用于data.frames的pandas包。这本身不是问题,而是这带来的不一致。举个例子:虽然NumPy和pandas支持矢量化代码,但基本Python不支持它,你必须使用好的旧循环。* Python和R都不是最快的语言,但是与R ++(通过Dirk Eddelbuettel的Rcpp)相比,与最快的C ++之一的集成在Python中的表现要好得多,现在它可以被认为是标准方法。所有R数据结构都由相应的C ++类支持,并且有一种通用的方法来编写可以像常规R函数一样调用的超快C ++函数:
`library``(Rcpp)`

`bmi_R <-` `function``(weight, height) {`

`weight / (height * height)`

`}`

`bmi_R``(80, 1.85)` `# body mass index of person with 80 kg and 185 cm`

`## [1] 23.37473`

`cppFunction``("`

`float` `bmi_cpp``(float weight, float height) {`

`return weight / (height * height);`

`}`

`")`

`bmi_cpp``(80, 1.85)` `# same with cpp function`

`## [1] 23.37473`

在数据科学领域使用Python的一个主要原因是深度学习:神经网络。像Tensorflow这样的主要框架和像Keras这样的API过去都是由Python控制的,但是现在也有适用于R的优秀包装器(https://tensorflow.rstudio.com/https://keras.rstudio.com/)。

总而言之,我认为R确实是大多数数据科学应用的最佳选择。学习曲线在开始时可能会稍微陡峭,但是当您使用更复杂的概念时,它比Python更容易使用。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容