当我们想要选择一种编程语言进行数据分析时,相信大多数人都会想到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
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
作者:Sunil Kappal
译者:安翔
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
获取小程序概况趋势: $app->data_cube->summaryTrend('20170313', '20170313') 开始日期与结束日期的格式为 yyyymmdd。 API summaryTrend(string $from, string $to); 概况趋势 dailyVisitTrend(string $from, string $to); 访问日趋势 weeklyVisitT
通过数据接口,开发者可以获取与公众平台官网统计模块类似但更灵活的数据,还可根据需要进行高级处理。 {info} 接口侧的公众号数据的数据库中仅存储了 2014年12月1日之后的数据,将查询不到在此之前的日期,即使有查到,也是不可信的脏数据; 请开发者在调用接口获取数据后,将数据保存在自身数据库中,即加快下次用户的访问速度,也降低了微信侧接口调用的不必要损耗。 额外注意,获取图文群发每日数据接口的结
面试高频题1: 题目:说一说数据分析流程 答案解析: 第一步: 与业务方沟通问题,明确分析目标; 第二步: 对目标进行拆解,可以采用两步分析法,也可以采用人货场分析法,通过数据定位问题源头; 这里可以通过计算各个维度该指标的变动系数=(指标异常前-指标异常后)/指标异常前,选出变动系数较大的前几个维度,对其进行分析 第三步:与产品、运营和技术沟通,找到问题原因。 面试高频题2: 题目:指标异动的分
面试高频题13: 题目:用户有目的的访问app(例如搜索女装),但是下单量较少怎么分析 答案解析: 漏斗分析。 下单转化漏斗:访问app--商品详情页--购买页面--支付页面--支付成功。 定位是哪个环节出现问题后,与技术人员和产品人员沟通,找到原因。 面试高频题14: 题目:如果近期贝壳二手房成交量下跌,怎么分析 答案解析: 首先,按照省市、价格区间等维度划分,找到是哪个维度下的二手房成交量下跌
面试高频题21: 题目:一家实体零售企业发现本月销售额同比下降30%,如何来分析销售额同比下滑的原因呢? 答案解析: 业务模型初步分析: 实体零售一般是以全国-大区-小区-单店的管理模型进行运营。 逻辑拆解: ①内外部大环境判断: 外部环境(PEST): 政策:如国家出台有关政策。 经济:如市场经济环境影响,竞品的影响。 社会:如社会上产生不利于舆论。 科技:如新技术出现并没有促进消费,反而产生不
有时候,对于我们的决定只要有一点点的数据支持就够了。一点点的变化,可能就决定了我们产品的好坏。我们可能会因此而作出一些些改变,这些改变可能会让我们打败巨头。 这一点和 Growth 的构建过程也很相像,在最开始的时候我只是想制定一个成长路线。而后,我发现这好像是一个不错的 idea,我就开始去构建这个 idea。于是它变成了 Growth,这时候我需要依靠什么去分析用户喜欢的功能呢?我没有那么多的