作为一直想入门数据分析的童鞋们来说,如何选定一门面向数据分析的编程语言或工具呢?注意是数据分析,而不是大数据哦,数据分析是基础了。
数据分析的工具千万种,综合起来万变不离其宗。无非是数据获取、数据存储、数据管理、数据计算、数据分析、数据展示等几个方面。而被提到频率最高的如Excel、R、Python、SPSS、SAS、SQL等。那么,这些工具本身到底有什么特点呢,应该如何合理的使用来解决数据分析的各种问题?
最简单的是EXCEL,它不仅是简单的而且是必备的。正所谓初级学图表,中级学函数透视表,高级学习VBA。EXCEL功能的强大只有那些正真学过它的人才能知道,我们反对任何关于EXCEL复杂,不实用的说法。在学完VBA之后,EXCEL几乎能解决你在日常工作中遇到的所有问题。EXCEL是你成为数据分析师的必备条件。
对于一个初级的数据分析师来说,刚开始如果能精通SQL与Excel再会点SPSS之类的就差不多了。SPSS对用户的要求是只要会点击菜单就可以了,有编程窗口但是一般没人用,用户多是受到过一些统计训练的,但不需要高深的分析能力,市场调研用的比较多,统计专业的学生一般要求掌握。
再往后,你可能就需要精通一门统计分析软件了,一般说来如果是互联网行业可能R语言是最为流行,因为R语言是开源的,不过上手还是需要长期的学习;SPSS界面友好型,不过一般是市场研究用的比较多,如果你会用SPSS编程,其实功能还是比较强大的,建议如果想先练手可以学这个,上手快;SAS一般是金融企业特别是银行业和医学统计,银行业人员有一些是用SAS做统计,一般是银行业内部人做的,另一种是给银行业做数据挖掘的公司,不过正版一年也要上百万,不是土豪也用不起,而且SAS学习没人指导很难学;所以看童鞋们的选择,想在传统或者咨询公司做的SPSS比较合适,想去金融特别是银行业SAS不错,想进互联网公司学R语言可能是比较明智。
再就是Python。Python在这些工具里面是综合功能最强大的,但是这些功能分散在第三方库里面,没有得到有机的整合,所以学习成本还是比较高的。Python与R不同,Python是一门多功能的语言。数据统计是更多是通过第三方包来实现的。具体来说,常用的Python在统计上面的Package有这样一些:
1、Numpy与Scipy。这两个包是Python之所以能在数据分析占有一席之地的重要原因。其中Numpy封装了基础的矩阵和向量的操作,而Scipy则在Numpy的基础上提供了更丰富的功能,比如各种统计常用的分布和算法都能迅速的在Scipy中找到。
2、Matplotlib。这个Package主要是用来提供数据可视化的,其功能强大,生成的图标可以达到印刷品质,在各种学术会议里面出镜率不低。依托于Python,可定制性相对于其他的图形库更高。还有一个优点是提供互动化的数据分析,可以动态的缩放图表,用做Adhoc analysis非常合适。
3、Scikit Learn。非常好用的MachineLearning库,适合于用于快速定制原型。封装几乎所有的经典算法,易用性极高。
4、Python标准库。这里主要是体现了Python处理字符串的优势,由于Python多功能的属性和对于正则表达式的良好支持,用于处理文本是再合适不过的了。
Python是一套比较平衡的语言,各方面都可以,而R是在统计方面比较突出。R的优势在于有包罗万象的统计函数可以调用,特别是在时间序列分析方面(主要用在金融分析与趋势预测)无论是经典还是前沿的方法都有相应的包直接使用;相比Python在这方面贫乏不少。Python的优势在于其胶水语言的特性,一些底层用C写的算法封装在Python包里后性能非常高效。
总之R和SAS是专业性比较强的统计软件,统计专业学生必备,SPSS是更大众化的统计软件,Python不是统计软件,而是一种可以用来做各种事情的语言。R和Python现在越来越受到各大公司的喜欢,也必定会成为将来的发展趋势。Python的功能可远远不止用来分析数据,它可以用来开发,建站,写个小APP什么的。我们所知道的果壳网,知乎,DROPBOX等可都是用Python写得哦。如果你能同时学会Python和R,在数据科学领域肯定就游刃有余了。
| 名称 | 特点 | 适用场景 | 出现频数 |
1 | Excel | 一般非大量数据分析的人员可以满足大部分需求 | 财务、金融、产品经理等一般数据量处理需求 | 较高,作为普通技能 |
2 | R语言 | 兼容性强,语言程序化也强,在编程语言方面需要投入的精力比Python大,但适用面较广 | 最常用数据分析工具之一,兼容性强 | 高频工具之一 |
3 | Python | Life is too short,I use Python 以语言简单,注重数据分析的高效著称,尤其是在文本处理等数据结构化方面有很好优势 | 编程类数据分析,如文本字符等非结构化数据的处理 | 高频工具之一 |
4 | SQL | 数据库处理和分析的必备技能,属于数据库方面的基本工具 | 侧重数据库方面,如数据仓库等,作为Oracle等数据库方面的基础知识不可或缺 | 高频工具之一 |
5 | SPSS | 统计分析功能强大,侧重于统计分析类模型 | 建模能力已经不局限于统计了,在预测、机器学习方面也有很多包 | 频率一般 |
6 | SAS | 金融大数据分析 | 金融风控建模较多 | 金融投资数据建模常用工具之一 |
7 | Matlab | 矩阵计算等数学专用建模工具 | 强大的各种工具包,以及仿真能力 | 侧重于数据本身的计算,院校科研用的较多 |
总的来说,不同工具各有擅场,最关键的当然还在于业务的掌握和数学方法的掌握(统计学和机器学习等核心方法)。但磨刀不误砍柴工,把基本工具掌握熟练了百利无一弊。而当你要做大数据分析的时候,还会用到Hadoop等工具(实际上这些工具都是可以结合Hadoop大数据平台联合起来用的,后面专题介绍)。而且,工具不是万能的,业务和数据建模方法才是万法之源。不要被工具迷花了眼哦!
工欲善其事,必先利其器!