R vs Python,数据分析中谁与争锋?
R和Python两者谁更适合数据分析领域?在某些特定情况下谁会更有优势?还是一个天生在各方面都比另一个更好?
当我们想要选择一种编程语言进行数据分析时,相信大多数人都会想到R和Python——但是从这两个非常强大、灵活的数据分析语言中二选一是非常困难的。
我承认我还没能从这两个数据科学家喜爱的语言中选出更好的那一个。因此,为了使事情变得有趣,本文将介绍一些关于这两种语言的详细信息,并将决策权留给读者。值得一提的是,有多种途径可以了解这两种语言各自的优缺点。然而在我看来,这两种语言之间其实有很强的关联。
Stack Overflow趋势对比

上图显示了自从2008年(Stack Overflow 成立)以来,这两种语言随着时间的推移而发生的变化。
R和Python在数据科学领域展开激烈竞争,我们来看看他们各自的平台份额,并将2016与2017年进行比较:

接下来我们将从适用场景、数据处理能力、任务、安装难度以及开放工具等方面详细了解这两种语言。
适用场景
R适用于数据分析任务需要独立计算或单个服务器的应用场景。Python作为一种粘合剂语言,在数据分析任务中需要与Web应用程序集成或者当一条统计代码需要插入到生产数据库中时,使用Python更好。
任务
在进行探索性统计分析时,R胜出。它非常适合初学者,统计模型仅需几行代码即可实现。Python作为一个完整而强大的编程语言,是部署用于生产使用的算法的有力工具。
数据处理能力
有了大量针对专业程序员以及非专业程序员的软件包和库的支持,不管是执行统计测试还是创建机器学习模型,R语言都得心应手。
Python最初在数据分析方面不是特别擅长,但随着NumPy、Pandas以及其他扩展库的推出,它已经逐渐在数据分析领域获得了广泛的应用。
开发环境
对于R语言,需要使用R Studio。对于Python,有很多Python IDE可供选择,其中Spyder和IPython Notebook是最受欢迎的。
热门软件包和库
下面罗列了R和Python推出的针对专业以及非专业程序员的最热门的软件包和库。
R:针对专业程序员的热门软件包
用于数据操作的 dplyr、plyr和 data table
用于字符串操作的 stringr
定期和不定期时间序列 zoo
数据可视化工具 ggvis、lattice 和 ggplot2
用于机器学习的 caret
R:针对非专业程序员的热门软件包
Rattle
R Commander http://www.qwangxiao.com/
Deducer
这些完整的GUI包可以实现强大的数据统计和建模功能。
Python:针对专业程序员的热门库
用于数据分析的 pandas
用于科学计算的 SciPy 和 NumPy
用于机器学习的 scikit-learn
图表库 matplotlib
statsmodels 用来探索数据,估算统计模型,并执行统计测试和单元测试
Python:针对非专业程序员的热门库
Orange Canvas 3.0是遵循GPL协议的开源软件包。它使用一些常用的Python开源库进行科学计算,包括numpy、scipy和scikit-learn。
R 和 Python 详细对比

正如本文开头提到的,R和Python之间有很强的关联,并且这两种语言日益普及。很难说哪一种更好,它们两者的整合在数据科学界激起了许多积极和协作的波澜。
总结
事实上,日常用户和数据科学家可以同时利用这两者语言,因为R用户可以在R中通过 rPython包来运行R中的Python代码,而Python用户可以通过RPy2库在Python环境中运行R代码。
R vs Python,数据分析中谁与争锋?的更多相关文章
- Python 数据分析中常用的可视化工具
Python 数据分析中常用的可视化工具 1 Matplotlib 用于创建出版质量图表的绘图工具库,目的是为 Python 构建一个 Matlab 式的绘图接口. 1.1 安装 Anaconada ...
- python数据分析中常用的库
Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...
- Python数据分析中Groupby用法之通过字典或Series进行分组
在数据分析中有时候需要自己定义分组规则 这里简单介绍一下用一个字典实现分组 people=DataFrame( np.random.randn(5,5), columns=['a','b','c',' ...
- Python 数据分析中金融数据的来源库和简单操作
目录 金融数据 pandas-datareader TuShare 金融学图表 案例 金融数据 数据分析离不开数据的获取,这里介绍几种常用的获取金融方面数据的方法. pandas-datareader ...
- Python数据分析中 DataFrame axis=0(0轴)与axis=1(1轴)的理解
python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列? 直接上代码people=DataFrame(np.random.randn(5,5), columns=['a ...
- Python数据分析中 DataFrame axis=0与axis=1的理解
python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列? 直接上代码people=DataFrame(np.random.randn(5,5), columns=['a ...
- SpreadJS + GcExcel 一出,谁与争锋!全栈表格技术轻松应对复杂公式计算场景(一)
设计思路篇 Excel是我们日常办公中最常用的电子表格程序,不仅可满足报表数据的计算需求,还可提供绘图.数据透视分析.BI和Visual Basic for Applications (VBA)宏语言 ...
- C/S与B/S谁与争锋之我见
看到网上有些人在讨论C/S架构和B/S架构以及它们的发展趋势,后起之秀B/S是否真将取代C/S而存在?在发表我的观点之前,我们先来一起来回顾下C/S以及B/S. 一C/S 1.C/S概念 C/S是Cl ...
- Vue.js与Jquery的比较 谁与争锋 js风暴
普遍认为jQuery是适合web初学者的起步工具.许多人甚至在学习jQuery之前,他们已经学习了一些轻量JavaScript知识.为什么?部分是因为jQuery的流行,但主要是源于经验开发人员的一个 ...
随机推荐
- Json.NET如何避免循环引用
Json.NET在将对象序列化为Json字符串的时候,如果对象有循环引用的属性或字段,那么会导致Json.NET抛出循环引用异常. 有两种方法可以解决这个问题: 1.在对象循环引用的属性上打上[Jso ...
- MSP430F5438A的串口
设置串口,最关键的是波特率的设置,推荐一个网站,很方便地计算波特率,http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP43 ...
- scala-数组操作
package com.bigdata import scala.collection.mutable.ArrayBuffer object ArrayO { def main(args: Array ...
- Hadoop日记Day7---HDFS的WED端口
HDFS 对外提供了可供访问的http server,开放了很多端口,下面介绍常用的几个端口(http://hadoop:……). 一.50070 端口,查看NameNode 状态,如图1.1所示. ...
- L017-linux系统定时任务crond入门小节
L017-linux系统定时任务crond入门小节 oh my god!how old are you? 怎么老是你?没错,我又来了,哈哈哈,今天是我的生日呢,在这么重要的日子里,必须要更一篇学习小节 ...
- MyBatis的一级缓存和二级缓存简介笔记
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
- SQL SERVER数据库升级手册
背景 最近接手很多项目都跟数据库升级有关.感触还是颇深,写个心得,供大家参考,如果有疑问欢迎留言. 为什么升级? 你可能会因为各种各样的原因选择升级.我认为原因主要是3个方面 1.旧版本使 ...
- 使用Python实时获取cmd的输出
最近发现一个问题,一个小伙儿写的console程序不够健壮,监听SOCKET的时候容易崩,造成程序的整体奔溃,无奈他没有找到问题的解决办法,一直解决不了,可是这又是一个监控程序,还是比较要紧的,又必须 ...
- 写个发邮件的功能php的(全代码)
---恢复内容开始--- 正好做了个项目,需要在线留言,一般在线留言发邮件是很常见的方式,一开始从网上搜了很久都没有很全的,也有全一点的,但是也不能用,运行不成功,下面给大家分享一下运行成功了的全部代 ...
- SQL Server Integration Services的10大最佳实践
原文出处:https://blogs.msdn.microsoft.com/sqlcat/2013/09/16/top-10-sql-server-integration-services-best- ...