深入比拟数据科学东西箱:Python和R之争
当前位置:以往代写 > 其他教程 >深入比拟数据科学东西箱:Python和R之争
2019-06-14

深入比拟数据科学东西箱:Python和R之争

深入比拟数据科学东西箱:Python和R之争

概述在真实的数据科学世界里,我们会有两个极度,一个是业务,一个是工程。方向业务的数据科学被称为数据阐明(Data Analysis),也就是A型数据科学。方向工程的数据科学被称为数据构建(Data Building),也就是B型数据科学。
从东西上来看,按由业务到工程的顺序,这个两条是:Excel >> R >> Python >> Scala
在实际事情中,对付小数据集的简朴阐明来说,利用EXCEL是较佳选择。当我们需要更多巨大的统计阐明和数据处理惩罚时,我们就需要转移到 Python 和 R 上。在确定工程实施和大数据集操纵时,我们就需要依赖 Scala 的静态范例等工程要领构建完整的数据阐明系统。
Scala 和 Excel 是两个极度,对付大大都创业公司而言,我们没有足够多的人手来实现专业化的分工,更多环境下,我们会在 Python 和 R 上耗费更多的时间同时完成数据阐明(A型)和数据构建(B型)的事情。而很多人也对 Python 和 R 的交错利用存在迷惑,所以本文将从实践角度对 Python 和 R 中做了一个具体的较量。
应用场景比拟
应用Python的场景网络爬虫/抓取:尽量 rvest 已经让 R 的网络爬虫/抓取变得容易,但 Python 的 beautifulsoup 和 Scrapy 越发成熟、成果更强大,团结django-scrapy我们可以很快的构建一个定制化的爬虫打点系统。
毗连数据库: R 提供了很多毗连数据库的选择,但 Python 只用 SQLachemy 通过ORM的方法,一个包就办理了多种数据库毗连的问题,且在出产情况中遍及利用。Python由于支持占位符操纵,在拼接SQL语句时也越发利便。
内容打点系统:基于Django,Python可以快速通过ORM成立数据库、靠山打点系统,而R
中的 Shiny 的鉴权成果临时还需要付费利用。
API构建:通过Tornado这个尺度的网络处理惩罚库,Python也可以快速实现轻量级的API,而R则较为巨大。
应用R的场景统计阐明: 尽量 Python 里 Scipy、Pandas、statsmodels 提供了一系列统计东西 ,R 自己是专门为统计阐明应用成立的,所以拥有更多此类东西。
互动式图表/面板: 迩来 bokeh、plotly、 intuitics 将 Python 的图形成果扩展到了网页欣赏器,甚至我们可以用tornado+d3来进一步定制可视化页面,但 R 的 shiny 和 shiny dashboard 速度更快,所需代码更少。
另外,当今数据阐明团队拥有很多技术,选择哪种语言实际上基于配景常识和履历。对付一些应用,尤其是原型设计和开拓类,事恋人员利用已经熟悉的东西会较量快速。
数据流编程比拟接着,我们将通过下面几个方面,对Python 和 R 的数据流编程做出一个具体的比拟。
1.参数通报
2.数据读取
3.根基数据布局比较
4.矩阵转化
5.矩阵计较
6.数据操纵
参数通报
Python/R 都可以通过呼吁行的方法和其他语言做交互,通过呼吁行而不是直接挪用某个类或要领可以更好地低落耦合性,在提高团队协作的效率。

深入相比数据科学对象箱:Python和R之争

数据传输与理会对付数据传输与理会,我们首推的名目是csv,因为一方面,csv名目标读写理会都可以通过 Python 和 R 的原生函数完成,不需要再安装其他包。另一方面,csv名目可以很快的转化为 data frame 名目,而data frame 名目是数据流阐明的焦点。
不外,实际环境中,我们需要传输一些非布局化的数据,这时候就必需用到 JSNO 可能 YAML。

深入相比数据科学对象箱:Python和R之争

根基数据布局由于是从科学计较的角度出发,R 中的数据布局很是的简朴,主要包罗 向量(一维)、多维数组(二维时为矩阵)、列表(非布局化数据)、数据框(布局化数据)。而 Python 则包括更富厚的数据布局来实现数据更精准的会见和内存节制,多维数组(可读写、有序)、元组(只读、有序)、荟萃(、无序)、字典(Key-Value)等等。

深入相比数据科学对象箱:Python和R之争

矩阵操纵实际上,Python(numpy) 和 R中的矩阵都是通过一个多维数组(ndarray)实现的。

深入相比数据科学对象箱:Python和R之争

深入相比数据科学对象箱:Python和R之争

数据框操纵参考 R 中的 data frame 布局,Python 的 Pandas包也实现了雷同的 data frame 数据布局。此刻,为了增强数据框的操纵,R 中更是演收支了 data table 名目(简称dt),这种名目以 dt[where,select,group by] 的形式支持雷同SQL的语法。

深入相比数据科学对象箱:Python和R之争

深入相比数据科学对象箱:Python和R之争

深入相比数据科学对象箱:Python和R之争

数据流编程比拟的示例Python 的 Pandas 中的管道操纵

深入相比数据科学对象箱:Python和R之争

R 的 dplyr 中的管道操纵#p#分页标题#e#

深入相比数据科学对象箱:Python和R之争

数据可视化比拟
绘制相关性散点图
比拟数据相关性是数据摸索常用的一种要领,下面是Python和R的比拟。
Python

深入相比数据科学对象箱:Python和R之争

R

深入相比数据科学对象箱:Python和R之争

固然我们最终获得了雷同的图形,这里R中GGally是依赖于ggplot2,而Python则是在matplotlib的基本上团结Seaborn,除了GGally在R中我们尚有许多其他的雷同要领来实现比拟制图,显然R中的画图有更完善的生态系统。
绘制聚类结果图这里以K-means为例,为了利便聚类,我们将非数值型可能有确实数据的列解除在外。
Python

深入相比数据科学对象箱:Python和R之争

R

深入相比数据科学对象箱:Python和R之争

深入相比数据科学对象箱:Python和R之争

速度比拟
Python

深入相比数据科学对象箱:Python和R之争

The slowest run took 9.29 times longer than the fastest. This could mean that an intermediate result is being cached
1 loops, best of 3: 111 ms per loop
R

深入相比数据科学对象箱:Python和R之争

显然这里 R 1.326的后果 比 Python 的 Numpy 3:111 的速度快了不少。
事实上,此刻 R 和 Python 的数据操纵的速度已经被优化得各有千秋了。下面是R中的 data.table、dplyr 与 Python 中的 pandas 的数据操纵机能比拟:

深入相比数据科学对象箱:Python和R之争

结论Python 的 pandas 从 R 中偷师 dataframes,R 中的 rvest 则警惕了 Python 的 BeautifulSoup,我们可以看出两种语言在必然水平上存在的互补性,凡是,我们认为 Python 比 R 在泛型编程上更有优势,而 R 在数据摸索、统计阐明是一种更高效的独立数据阐明东西。所以说,同时学会Python和R这两把刷子才是数据科学的王道。
接待插手本站果真乐趣群贸易智能与数据阐明群乐趣范畴包罗各类让数据发生代价的步伐,实际应用案例分享与接头,阐明东西,ETL东西,数据客栈,数据挖掘东西,报表系统等全方位常识QQ群:81035754

    关键字:

在线提交作业