从主观的角度来看,已有数十篇文章比较了Python与R。大数据分析Python和R语言的优缺点旨在更客观地研究语言。我们将在Python和R中并排分析数据集,并显示两种语言需要哪些代码才能获得相同的结果。这将使我们无需猜测即可了解每种语言的优点和缺点。在AAA教育,我们教授两种语言,并且认为这两种语言在数据科学工具包中都占有一席之地。

  我们将分析NBA球员及其在2013-2014赛季的表现数据。对于分析的每个步骤,我们将显示Python和R代码,以及对不同方法的一些解释和讨论。事不宜迟,让我们开始这场Python vs R对决!

  导入CSV

  [R

  

  Python

  

  上面的代码会将CSV文件nba_2013.csv(包含2013-2014赛季NBA球员的数据)加载到nba两种语言的变量中。唯一的实际区别是在Python中,我们需要导入pandas库才能访问数据框。在R中,虽然我们可以使用基本R函数导入数据read.csv(),但使用readr库函数read_csv()的优点是速度更快,并且数据类型的解释一致。数据框在R和Python中均可用,并且是二维数组(矩阵),其中每一列可以具有不同的数据类型。在此步骤结束时,两种语言均已将CSV文件加载到数据框中。

  查找行数

  [R

  

  Python

  

  这将打印出播放器的数量和每个播放器中的列数。我们有481行或播放器,以及31包含播放器数据的列。

  查看数据的第一行

  [R

  

  Python

  

  这几乎是相同的。两者都打印出数据的第一行,并且语法非常相似。Python在这里更面向对象,并且head是数据框对象的方法,而R具有单独的head功能。当我们开始使用这些语言进行分析时,这是一个常见的主题。Python更面向对象,R更实用。

  查找每个统计的平均值

  让我们找到每个统计的平均值。如我们所见,这些列的名称如fg(制定了目标)和ast(辅助)。这些是球员的赛季统计数据。(如果您想对所有统计信息进行更全面的说明,请查看此处。)

  [R

  

  Python

  

  此处,Python和R的方法存在一些主要差异。在这两种方法中,我们都在数据框列上应用了一个函数。在Python中,默认情况下,数据框上的mean方法将查找每列的平均值。

  在R中,我们可以使用两个常用软件包中的函数来选择要平均的列,然后将mean函数应用于它们。%>%称为“管道” 的操作员将一项功能的输出作为下一项功能的输入。取字符串值的平均值只会导致NA-不可用。我们可以使用来仅取数字列的平均值select_if。

  但是,我们NA在取平均值时确实需要忽略值(要求我们传递na.rm=TRUE给mean函数)。如果不这样做,则最终NA得到像列的均值x3p.。此列是三点百分比。一些球员没有三分球命中率,所以他们的百分比失了。如果我们尝试使用meanR中的函数,则会得到NA响应,除非我们指定na.rm=TRUE,否则NA在取平均值时会忽略值。.mean()默认情况下,Python中的方法已经忽略了这些值。

  进行成对散点图

  探索数据集的一种常用方法是查看不同的列如何相互关联。我们会比较ast,fg和trb列。

  [R

  

  Python

  

  最后,我们得到了非常相似的图,但这表明R数据科学生态系统如何具有许多较小的程序包(GGally是ggplot2的帮助程序包,即ggplot2,是最常用的R绘图程序包),并且通常还有更多可视化程序包。在Python中,matplotlib是主要的绘图程序包,而seaborn是matplotlib上广泛使用的层。使用Python进行可视化,通常有一种主要的方法来完成某项工作,而在R中,有许多支持不同的做事方法的程序包(例如,至少有六个程序包可以制作成对图)。

  聚集玩家

  探索此类数据的一种好方法是生成聚类图。这些将显示哪些球员最相似。

  [R

  

  Python

  

  为了正确集群,我们删除任何非数字列或列缺少值(NA,Nan,等)。在R中,我们通过在每列上应用一个函数来完成此操作,如果该函数缺少任何值或不是数字,则将其删除。然后,我们使用集群程序包执行k均值并5在我们的数据中找到集群。我们设置一个随机种子set.seed用于能够再现我们的结果。

  在Python中,我们使用主要的Python机器学习包scikit-learn来拟合k-均值聚类模型并获得我们的聚类标签。我们使用非常相似的方法来准备我们在R中使用的数据,只是我们使用get_numeric_data和dropna方法来删除非数字列和缺少值的列。

  按集群绘制玩家

  现在,我们可以按组绘制玩家以发现模式。一种方法是首先使用PCA使数据二维化,然后绘制数据,并根据聚类关联对每个点进行着色。

  [R

  

  Python

  

  绘制了我们的数据散点图,并根据聚类对数据的图标进行了阴影处理或更改。在R中,使用的clusplot功能是群集库的一部分。我们通过pccompR中内置的功能执行了PCA 。

  使用Python,我们在scikit-learn库中使用了PCA类。我们使用matplotlib来创建绘图。

  分为训练和测试集

  如果我们想进行监督式机器学习,将数据分为训练集和测试集是个好主意,这样就不会过拟合。

  [R

  

  Python

  

  Python中对R进行比较,我们可以看到,R有更多的数据分析侧重建宏,喜欢floor,sample和set.seed,而这些是通过包称为在Python( ,math.floor,)。random.sample random.seed在Python中,最新版本的pandas带有一种sample方法,该方法返回从源数据帧中随机采样的一定比例的行-这使代码更加简洁。在R中,有一些程序包使采样更简单,但没有比使用内置sample函数简单得多。大数据分析Python和R语言的优缺点https://www.aaa-cg.com.cn/data/2543.html在这两种情况下,我们都设置一个随机种子以使结果可重复。

  单变量线性回归

  假设我们要根据每个球员的射门得分来预测每个球员的助攻数。

  [R

  

  Python

  

  Scikit-learn具有线性回归模型,我们可以拟合并从中生成预测。[R依赖于内置lm和predict功能。predict根据传入的拟合模型的类型,其行为将有所不同-它可以与各种拟合模型一起使用。

  计算模型的摘要统计信息

  [R

  

  Python

  

  如果要获取有关拟合的摘要统计信息(如r平方值),则在Python中要比在R中做更多的事情。使用R,我们可以使用内置summary函数来获取有关模型的信息。对于Python,我们需要使用statsmodels包,该包允许在Python中使用许多统计方法。我们得到相似的结果,尽管通常在Python中进行统计分析会比较困难,并且R中存在的某些统计方法在Python中不存在。

  拟合随机森林模型

  我们的线性回归在单变量情况下效果很好,但是我们怀疑数据中可能存在非线性。因此,我们想拟合一个随机森林模型。

  [R

  

  Python

  

  这里的主要区别是我们需要使用R中的randomForest库来使用该算法,而它是内置于scikit-learn中的Python。scikit-learn具有一个统一的接口,可与Python中的许多不同的机器学习算法一起使用,并且Python中每种算法通常只有一个主要实现。使用R,有许多较小的程序包,其中包含各个算法,通常使用不一致的方法来访问它们。这导致算法的多样性更大(很多都有几种实现方式,许多是刚从研究实验室中脱颖而出的),但是却对可用性造成了影响。

  计算误差

  现在我们已经拟合了两个模型,让我们计算误差。我们将使用MSE。

  [R

  

  Python

  

  在Python中,scikit-learn库具有我们可以使用的各种错误度量。在R中,可能会有一些较小的库来计算MSE,但是手动使用两种语言都非常容易。几乎可以肯定,由于参数调整而导致的错误之间存在很小的差异,这并不重要。

  下载网页

  现在我们掌握了2013-2014年NBA球员的数据,下面我们来补充一些数据。我们只看到一个框得分从NBA总决赛在这里,以节省时间。

  [R

  

  Python

  

  在Python中,请求包使所有网站都可以使用一致的API轻松下载网页。在R中,RCurl提供了类似的简单请求方法。两者都将网页下载为字符数据类型。注意:此步骤对于R中的下一步骤是不必要的,但出于比较目的而显示。

  提取玩家框得分

  现在我们有了网页,我们需要对其进行解析以提取玩家的分数。

  [R

  

  Python

  

  这将创建一个包含两个列表的列表,第一个列表的框得分为CLE,第二个列表框得分为GSW。两者都包含标题,以及每个玩家及其游戏中的统计信息。我们现在不会将其转换为更多的训练数据,但是可以轻松地将其转换为可以添加到我们的nba数据框中的格式。

  R代码比Python代码更复杂,因为没有使用正则表达式选择项目的便捷方法,因此我们必须进行其他解析才能从HTML中获取团队名称。R还不鼓励使用for循环,而是希望沿向量应用函数。我们lapply经常这样做,但是由于我们需要根据是否是标题而对每一行进行不同的处理,因此我们将所需项的索引以及整个rows列表传递给函数。

  我们使用rvest广泛使用的R Web抓包来提取所需的数据。请注意,我们可以将url直接传递到rvest中,因此R中不需要最后一步。

  在Python中,我们使用BeautifulSoup,这是最常用的Web抓包。它使我们能够遍历标签并以简单的方式构造列表列表。

  结论中的Python vs R

  我们已经看过如何使用R和Python分析数据集。我们没有涉及许多任务,例如,保留分析结果,与他人共享结果,进行测试并使产品准备就绪并进行更多可视化。关于此主题还有很多要讨论的内容,但是基于上面所做的事情,我们可以得出一些有意义的结论:

  R的功能更多,Python的更面向对象。

  正如我们从,和其他函数中看到的那样lm,predictR让函数完成了大部分工作。将此与LinearRegressionPython中的类以及sample数据框上的方法进行对比。

  R具有更多内置的数据分析功能,Python依赖于软件包。

  在查看摘要统计信息时,我们可以使用summaryR中的内置函数,但必须statsmodels在Python中导入该包。数据框是R中的内置构造,​​但必须通过pandasPython中的包导入。

  Python具有用于数据分析任务的“主要”软件包,R具有较大的小型软件包生态系统。

  使用Python,我们可以使用scikit-learn软件包进行线性回归,随机森林等等。它提供一致的API,并且维护良好。在R中,我们有更多的软件包多样性,但也有更大的碎片化和更少的一致性(线性回归是内置的lm,randomForest是单独的软件包,等等)。

  R通常具有更多的统计支持。

  R被构建为一种统计语言,它可以显示。statsmodelsPython和其他软件包中的XML提供了不错的统计方法覆盖范围,但是R生态系统要大得多。

  在Python中执行非统计性任务通常更为直接。

  使用BeautifulSoup和请求等维护良好的库,Python中的Web抓取要比R中的要容易得多。这适用于我们没有仔细研究的其他任务,例如保存到数据库,部署Web服务器或运行复杂的工作流程。

  两者中的数据分析工作流之间有很多相似之处。

  R和Python之间都有明显的灵感点(pandas数据框受R数据框启发,rvest软件包受BeautifulSoup启发),并且两个生态系统都在不断壮大。令人惊讶的是,两种语言中许多常见任务的语法和方法多么相似。

  Python vs R的最终结论

  我们认为R是数据科学的另一种至关重要的语言。我们认为两种语言是互补的,每种语言都有其优点和缺点。正如本演练所证明的,任何一种语言都可以用作您唯一的数据分析工具。两种语言在语法和方法上都有很多相似之处,并且您都不会错。

  最终,您可能最终想要学习Python 和 R,以便可以利用两种语言的优势,根据需要在每个项目中选择一种或另一种。当然,如果您要在数据科学领域中寻找一席之地,那么同时了解两者也会使您成为更灵活的求职者。

摘自:https://www.aaa-cg.com.cn/data/2543.html?ly

大数据分析Python和R语言的优缺点相关推荐

  1. python和r语言做大数据_R和python大数据

    数据科学界华山论剑:R与Python巅峰对决 如果你是数据分析领域的新兵,那么你一定很难抉择--在进行数据分析时,到底应该使用哪个语言,R还是Python?在网络上,也经常出现诸如"我想学习 ...

  2. 数据分析用r还是python_想要从事数据分析,选择python还是R语言呢?

    数据分析是当下非常受欢迎的领域,而python和R语言在数据分析领域都有着非常重要的作用,那么想要从事数据分析,选择python还是R语言呢? 什么是python? python由 Guido van ...

  3. python和r语言哪个入门容易-R语言 vs Python对比:数据分析哪家强?

    什么是R语言? R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的罗斯·伊哈卡和罗伯特·杰特曼开发(也因此称为R),现在由"R开发核心 ...

  4. python医学应用_数据分析工具鄙视链:Python、R语言是老大,Excel只能称小弟?

    最新行业报告 2020数据分析.商业分析行业报告工作岗位与职能.薪资对比.热招公司等多方面详细解读帮助你一网打尽,斩获心仪Offer! 扫码回复[数据分析 0]立即领取 History语言发展史ABC ...

  5. 数据分析:工作平台【非编程类:STATA、SPASS、MatLab】【编程类:Python、R语言】

    数据分析:工作平台[非编程类:STATA.SPASS.MatLab][编程类:Python.R语言]

  6. pythonr语言三种基本结构_如何轻松搞定数据科学面试:Python&R语言篇

    作者: Carson Forter 编译: Mika本文为 CDA 数据分析师原创作品,转载需授权 对于数据科学家来说,工作的一大部分都需要在交互式编程环境中对数据进行处理.分析和可视化. 在过去几年 ...

  7. 学习大数据分析python编程指南

    每个人都喜欢Python.如果您打算开始从事数据科学事业,我们可以肯定Python在您心中已经占有特殊的位置.它直观且易于在任何平台上运行,并且具有大量令人惊叹的库和工具.与其他编程语言相比,Pyth ...

  8. r语言和python-R VS Python:R语言是否真的过时了?

    ​自从CDA数据分析师开设了Level1 业务数据分析师 R专题之后,很多学生对此产生了疑惑.特别是在挖掘建模工具的选择上,甚至出现了选择恐惧症.在此,摘抄了 浩彬老撕 的文章,以及之前零零散散看的一 ...

  9. python调用r语言加载包错误_Python调用R语言

    网络上经常看到有人问数据分析是学习Python好还是R语言好,还有一些争论Python好还是R好的文章.每次看到这样的文章我都会想到李舰和肖凯的<数据科学中的R语言>,书中一直强调,工具不 ...

最新文章

  1. python 类中定义类_Python中的动态类定义
  2. Git常见报错及解决方法
  3. 关于linux内核模块的装载过程
  4. java B2B2C springmvc mybatis电子商务平台源码-消息队列之RocketMQ
  5. 计算机专业女兵,陈豪2010《点解阿Sir》剧照
  6. python和ui设计,PySide2相当于PyQt5的loadUiType(),用于在UI设计中动态混合
  7. webpack整体了解
  8. JAVA编程相关:eclipse如何导入已有工程
  9. FPGA外挂DDR存储器简介
  10. 007. VMware 创建共享文件夹
  11. 某大型银行深化系统技术方案之十七:技术架构
  12. 为numpy数组增加一个维度的方法
  13. CAD控件Aspose.CAD V17.4发布 | 支持DWF和DWG格式
  14. 中标麒麟系统安装步骤
  15. linux sipp 呼叫转移_SipP绑定多IP进行注册、呼叫
  16. 马云鼓动年轻人2015创业是存私心的?
  17. 安卓手机格式化怎么弄_安卓手机怎么格式化?
  18. python画国旗和八卦图
  19. MATLAB中的一些小技巧(2) - [MATLAB]
  20. 干货满满 | 不容错过的数据科学入门数学指南

热门文章

  1. Win10重装系统提示:在efi系统上windows只能安装到gpt磁盘
  2. python跟谁学_Python和Java学哪个更好?
  3. 5.19开发者日:逗斗竞技平台介绍
  4. 上课word文档 自动控制原理--卢京潮 2009 完整版
  5. linux daemon(守护进程)
  6. 笨办法学python3进阶篇_笨办法学Python 3 进阶篇
  7. Qt窗口置顶的俩种方法
  8. 什么是性格不良?如何自我分析性格不良?
  9. 一种Flutter加载更多的实现方法
  10. python代码重构技巧_Python代码重构