Python绝技:运用Python成为顶级数据工程师
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 为什么是Python

数据分析的工具可以分为两类:一是以MATLAB、SPSS、Excel等为代表的具有界面化操作,且可编程辅助的软件式工具,一是以Python、R、Java等为代表的纯编程分析的程序语言式工具。

(1)软件式工具和语言式工具在软件分析领域的优缺点

软件式工具不太适合需要例行化自动分析的问题。比如Nginx每小时产生一批数据,需要统计其中HTTP状态码为200的请求数以及流量峰值等数据。在这种情况下用Python、R或者Java能够很好地实现例行化统计;然而,用Excel或者SPSS实现则非常困难,当然Excel加上VBA也可以实现,但是十分不方便。

软件式工具不太适合大数据处理的问题。对于亿行甚至更多的数据,使用软件式工具分析,其效率极低或者根本无法操作。但是,Python和R等语言式工具,能够通过结合大数据组件,实现对海量数据的有效处理,而且一系列的过程皆可用编程自动化完成。

所以,数据量小,非例行化的分析使用软件式工具可能更加方便;数据量大,或者需要例行化分析输出的场景,选择一门语言式工具进行分析更为高效。

(2)R、Python、Java等语言式分析工具的优缺点

Python、R等属于解释型语言,简单的说就是编写好程序,直接运行,不需要编译链接等各种过程。Java、C++等属于编译型语言,需要对代码进行编译链接等一系列操作,之后才能形成最终的可执行程序。

在数据分析的场景中,解释型语言有诸多好处。

①不需要编译链接。编译链接的过程是极容易出错的,尤其对于编程能力较弱的数据分析师而言,根本无法解决编译链接中的各种问题。因此,选择解释型语言,其好处不言而喻。

②相比于C++、Java等编译型语言,Python、R等解释型语言语法和结构相对简单,对于专注于数据分析的新手,一般学习一周左右就可以上手工作了。

③Python、R拥有和数据分析相关的大量开源库和分析框架,可直接使用,非常方便。

综上,在选择语言式分析工具时,Python、R会是更好的选择。但是,到底用Python还是R呢?如果只针对数据分析,那么Python、R确实没有大的差别;但是,R仅仅在数据分析领域比较成熟,而Python则可以应用到除数据分析以外的几乎所有的程序开发领域。比如,Python可以使用各种开源库简易地实现Web服务端、爬虫等程序;同时,其多样的“语法糖”可以方便地完成复杂的运算和多种设计模式。由于数据分析在多数场景下并不是孤立的,可能需要先完成爬取数据、或者先保存服务端日志等工作,在这种情况下,为什么不用Python呢?

在大数据时代的浪潮中,数据工程师承担着分析和工程的双重角色。他们不仅要掌握数据分析的方法,还需要实现数据的搜集、过滤、存储,并在此基础上分析、挖掘数据的价值,因此,在这样的大背景之下,与当前多种主流的数据分析工具相比,Python具有绝对的优势。