为什么要使用Python、R进行数据分析?

广告也精彩

对于数据分析,如果只是给定准备好的数据集,做简单的描述性统计、简单绘图,那么不太需要掌握任何编程语言。问题是,现实中收集到的数据是多样的、基础的,很少能直接满足模型对数据规格的要求以及模型成立的假设,那么就需要在分析前变换、合并、分类、整理数据,此时可能需要从数据库用SQL跨表查询,数据整理好后利用模型做统计推断或者机器学习等等,形成样本内或样本外的预测,可能还要用可视化的方式呈现结果。

 

1、为什么用Python做数据分析?
首先因为Python可以轻松地集成C、C++、Fortran代码,一些底层用C写的算法封装在python包里后性能非常高效。并且Python与Ruby都有大量的Web框架,因此用于网站的建设,另一方面个人觉得因为Python作为解释性语言相对编译型语言更为简单,可以通过简单的脚本处理大量的数据。而组织内部统一使用的语言将大大提高工作效率。

2、为什么用R做数据分析?
R的优势在于有包罗万象的统计函数可以调用,特别是在时间序列分析方面(主要用在金融分析与趋势预测)无论是经典还是前沿的方法都有相应的包直接使用;相比python在这方面贫乏不少。另外R语言具有强大的可视化功能,一个散点图箱线图可以用一条程序搞定,相比Excel更加简单。
在使用环境方面,SAS在企业、政府及军事机构使用较多,因其权威认证;SPSS、R大多用于科研机构,企业级应用方面已有大量的商业化R软件,同时可结合(具体怎么结合,尚未搞明白)Hadoop进行数据挖掘。

数据分析这整个过程中,各个环节都可能涉及到大量的参数需要调节,各种细节都需要控制,还有很多主观的选择。这样的过程如果用软件窗口去实现,窗口中的选项将非常复杂,整个过程需要在多个数据及上重复执行也很麻烦。用编程语言可以精确地描述整个过程,控制大部分细节,并且可以批量的重复实现。

数据分析和探索的过程是一个不断尝试想法、验证假设的过程,这就需要临时产生、执行新的代码,脚本语言如Python和R天生就是对这样的互动操作有很好的支持。如果这种过程都用C++或Java这些需要编译(二进制或bytecode)——执行的语言来完成,那么过程将比较痛苦。

f9seo

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: