如果你对 Python 语言不了解可以先学习本网站《Python基础教程,Python入门教程》
由于 Python 语言的简洁性、易读性以及可扩展性,在国外用 Python 做科学计算的研究机构日益增多,一些知名大学已经采用 Python 来教授程序设计课程;在国内 Python 语言被纳入初高中以及大学教材。
Python 之所以能经久不衰且有愈演愈烈的态势,和当前发展迅猛的人工智能以及数据分析有不可分割的原因,Python 强大的科学计算扩展库,被广大程序设计师以及企业所认同。例如常用 3 个经典的科学计算库:NumPy、SciPy 和 matplotlib,它们分别为 Python 提供了快速数组处理、数值运算以及绘图功能。
综上所述,Python 语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表等。下面我们就详细讲一下为什么选择 Python 做数据分析以及它的优缺点。
1. Python数据分析的理由
对于数据分析师从业者而言,经常需要从事:数据库操作、报告撰写、数据可视化、数据挖掘的工作。这些工作不写代码也可以操作,利用 Excel 进行数据可视化、使用 SPSS 等一些亲民类平台工具进行数据挖掘,在《数据分析是什么?》中我们介绍了使用平台工具虽然可造作性强,但是不可避免的会存在重复机械的劳动,从而降低自己的工作效率,但如果你会用 Python 编写代码,操作的自由度更高,发展的潜力更大。
1) Python强大的第三方库
Python 语言拥有简洁易读的特性,它是个生态完善且开源软件包很多的高级动态编程语言。在数据分析过程中,可以通过调用不同的包来完成相应的工作,比如上述介绍的 Numpy、SciPy 和 Matplotlib以及 pandas,这些模块分别承担着数据分析工作不同的任务。就拿 Numpy 来说吧,Numpy (Numerical Python)的简称,是 Python 科学计算的基础包。功能主要如下:
- 快速高效的多维数组对象 ndarray。
- 线性代数运算、傅里叶变换,以及随机数生成。
- 用于将 C、C++、Fortran(公式翻译语言)代码集成到 Python 的工具。
- 用于对数组执行元素级计算以及直接对数组执行数学运算的函数。
Numpy 除了为 Python 提供快速的数组处理能力,它的另外一个主要作用是作为在算法之间传递数据的容器。对于数值型数据,NumPy 数组在存储和处理数据时要比内置的 Python 数据结构高效得多,在后续章节中我们对 Numpy 进行详细介绍。
2) 分析过程可控复用性强
当我们使用 Python 做数据分析时,可以将分析的过程保存下来,从而实现对分析过程的追溯,最后当一个数据分析的任务完成后,我们可以代码以脚本的形式保存下来,以实现后续复用的目的,从而提升你的工作效率。
图1:Python人生新路标
3) Python语言功能完善
Python 不仅在数据分析方面有很突出的表现能力,还在网络爬虫、Web 站点开发、游戏开发、自动化运维等众多领域都有很广泛的应用。这对于软件公司来说无疑是一件锦上添花的事情,让使用一种语言完成全部服务成为可能。
我们可以用 Python 的爬虫框架 Scrapy 来爬取数据,然后交给 pandas 做数据清洗处理,最后使用Python 的 Django 框架搭建 Web 站点将结果展示出来,你会发现在这一过程中,我们仅靠 Python 语言的框架实现了全部需求。所有的开发人员使用同一种编程工具将会给企业带来非常显著的效益。
4) Python作为胶水语言
Python 是一种“胶水语言”,顾名思义就是“粘合”的意思 ,Python 在设计初期就面向科研人员,以降低编程难度,提高编程效率为目的。Python 之所以在科学计算领域能够功成名就,这和它能够轻松地集成 C、C++以及 Fortran 代码有不可分割原因。大部分现代计算环境都利用了 Fortran 和 C库来实现线性代数、积分、傅里叶变换等诸多算法。
5) Python与AI紧密相连
你可能感觉 人工智能是很神秘的事物,其实它离一个数据分析师并不遥远。现在大部分深度学习框架都优先选择支持 Python 语言,比如当下火热的谷歌深度学习框架Tensorflow,它虽然是C++编写的,但对 Python 语言支持是最好。
图2:Python与人工智能
Tensorflow 的数据类型与 numpy 的数据类型是等价的,这是因为 Tensorflow 在设计的时候就是参考了 numpy 的数据类型,目的就是使其成为 Python 科学计算系列库的重要部分。所以使用 Python 做数据分析,对于和 AI 人工智能接轨有很好的帮助。这无疑将拓宽你的视野与道路,增加自身的软实力。
2. Python语言暂时的短板
1) Python GIL全局解释器锁
相信有 Python 基础的伙伴们,对于这个问题并不陌生,但是有利就有弊也可以理解。虽然 Python 非常适合构建计算密集型科学应用程序以及各种各样的通用系统,但由于 Python 是一种解释型编程语言,因此大部分 Python 代码都要比用编译型语言(Java 或 C++) 编写的代码运行的慢。小数量级当然体会不到,只有在大数量级别下才会暴露问题。因此在一些要求低延迟的系统中,就要权衡利弊了。
Cython 是一个种编程语言,它是让 Python 脚本支持 C语言扩展的编译器,主要用于优化 Python 脚本性能,从而实现加速。用 C扩展 Python 成为提高 Python 性能常用方法,Cython 算是较为常见的一种扩展方式,还可以使用 Jython 和 IronPython 作为解释器。
图3:Cython Logo
对于高并发、多线程的应用程序而言,尤其是计算密集型线程应用程序,Python 并不是一种理想的编程语言。这是因为 Python有一个叫做全局解释器锁即 GIL,这是一种防止解释器同时执行多条 Python 字节码指令的机制。GIL 并不会在短时间内消失。但这对你使用 Python 进行数据分析并无影响,只有企业和 Python 研发团队才需要考虑这个问题 。
通过本节知识的介绍,我们对于 Python 能够成为做数据分析的一种编程工具就不再感到疑惑了,本套教程中,我们将给大家打开 Python 数据分析的大门,带你走进数据分析的世界,从基础开始详解介绍 Python 中有关数据分析的各个模块,从基础模块 Numpy 开始,到进阶模块 pandas 的使用,最后通过具体的数据分析案例,让你融会贯通。知道是第一步,学到并做到才是我们的最终目的,成为你数据分析师道路上的加油站!
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/24046.html