python数据分析入门是怎样的

这篇文章将为大家详细讲解有关python数据分析入门是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

 随着Python自身功能的完善以及生态系统的扩展,Python在Web开发、网络爬虫、数据分析与数据挖掘、人工智能等应用方面逐渐崭露头角。回顾phthon演变史,主要如下介个阶段:

1、Django和Flask引领的WEB开发模式

2、网络爬虫

3、自动化运维

4、数据分析与科学计算

作为数据库出身,本人学习以数据分析和挖掘为方向为主,因此接下来围绕这些内容进行简要总结。2008年发布的Numpy、scipy和2009年发布的pandas是数据分析与科学计算的三剑客。因此在这次学习过程中,我围绕数据分析方向经常用到的有Numpy、pandas、sklearn工具包为主进行学习测试。

一、安装环境

      自学要从python3开始,安装环境建议使用Anaconda,关于anaconda的可以看看这篇文章:Anaconda完全入门指南 ,来自 https://www.jianshu.com/p/eaee1fadc1e9>

      虽然有功能强大的PyCharm开发工具,在入门阶段还是建议使用anaconda环境,尤其其中的Spyder图形开发界面,适合初学者加载各种包和查看变量值等。  

二、python语法基础

      python是采用弱变量机制,也就是说变量类型不用明确指定。python中的数据类型不多,有元组(tuple)、列表(list)、字典等。某种数据类型是指具体类型和该类型数据的操作集合,比如,元组用圆括号,可以做创建、查询等,但不能修改。List用中括号表示,能修改,类似一维数组。不过list也可包含二元元组(或更多元元组)等,还有实现了分支和流程控制的for /while、lambd函数等。

       数据分析和挖掘,仅仅python基本语法还不够,因此后来有了Numpy和scipy包,主要用于处理以为数组(Ndarry)和各类数据计算。为什么数组的处理呢,因为学习机器学习的时候我们会发现矩阵是模式识别或相似度分析的基础,矩阵实际上就是多维数组,所以免不了数组的计算。

三、python数据分析

       现实世界不那么简单,因此后来又有了pandas,主要用于表格类数据(实际上也是矩阵)处理的Datafram和序列数据的Series,通过pndas的各类操作方法,数据分析初期的数据清洗和预处理工作基本能完成。如果你是数据库很熟,前期数据处理(数据仓库)都能用SQL来处理,那pandas也是可以跳过去,但是学了pandas后我们会发现,有些数据处理操作比SQL还高效易用,因此还是需要学习。pandas的Datafram对应于数据库中表或Exell上的表格。通过pandas我们后续会合并、排序特需的数据集。也能进行基本统计、分组、分布、交叉、相关分析等。

       当然,这些分析离不开数据导入导出功能的实现,根据个人经验,这些导入导出和各类数据库链接等,python里实现起来还是比较顺利轻松,Excell、CVS、文本、mysql等的链接导入导出测试一般一次就能成功。对Oracle数据库的链接,因本地电脑需要安装Oracle客户端原因,相对较为麻烦,相关过程可以参见本博客的文章“python环境链接Oracle数据库”:http://blog.itpub.net/18841027/viewspace-2655148/。

      分析过的数据也需要各种图标来展现,因此python也少不了数据可视化工具,因此出现了Matplotlib,其中应用最广泛的称为matplotlib.pyplot模块儿。

四、python数据挖掘

       除了简单分析,我们还需要挖掘和采用机器学习的算法,因此有了机器学习公共库scikit-learn(简称sklearn)。sklearn整合了多种机器学习算法库,在数据分析过程中能够快速建立模型。所谓机器学习本质就是首先将数据分成训练集和测试集,根据训练集及其目标特征,通过建立特定模型,然后通过测试数据进行测试评估。评估结果达到预计标准后将模型部署到生产环境,将输入生产数据(特征未知的数据集)进行预测判断的过程。如下图1所示:

python数据分析入门是怎样的

 图1 机器学习过程图

数据挖掘是内容不少的一门专业课程,但在sklearn中的的实现概括起来如下图2所示。从图中可以看出,机器学习的本质也是一个分类的过程。数据分为字符类数据(非连续)和数值类数据(连续),字符类数据的分类我们还是叫分类(classification)而数值类数据的分类叫做回归(regression)。另一中分类方法叫做聚类(clustering),还有为了降低计算和空间复杂的所采取的降维(dimensionality reduction)。

python数据分析入门是怎样的

图2  sklearn算法蓝图

五,应用和实战

       除非我们做科研类工作,我们工作基本聚焦在项目应用和工程实战。因此,有了以上基础后,我们得结合具体需求做一些代码编写或已有代码的测试工作。当明白这些书上的现成代码,且测试成功后,下一步就是对这些代码做一些修改能力培养阶段,同时回顾之前内容复习一遍,所谓的温故而知新阶段。温故阶段要熟练那些语法,当我们再次阅读时候领悟到知识点肯定跟第一次学习阶段有所不同的,也是必要阶段。

       这些阶段结束后,我们开始结合工作需求做一些尝试。也许一开始不好开始或下手。但我们要记住,只有问题解决为导向的学习研究才是真正高效的学习方式。因此,在这个挑战阶段虽然开头难,但给我带来成就感和学有所用的关键阶段。我本人也准备开始踏入该阶段,因此现在总结未免过早,当有了收获,也会逐步分享。

      Python语言易用和具备大量公用库,可以拿来主义的方式来使用,但作为一个编程语言,要掌握这门语言来将现实世界需求改编为计算机世界的模型和程序代码,我们离开不了计算(机)思维。那什么是计算思维?计算思维的本质就是抽象(Abstraction)与自动化(Automation),即在不同层面进行抽象,以及将这些抽象“机器化”。 国内国内学者和专家的观点为:计算思维是人类应具备的第三种思维:

1、实验思维: 实验è观察è发现、推断与总结. ---观察与归纳

2、理论思维: 假设/预设è定义/性质/定理è证明. ---推理和演绎

3、计算思维: 设计, 构造与计算. ---设计与构造

       计算思维关注的是人类思维中有关可行性、可构造性和可评价性的部分。当前环境下,理论与实验手段在面临大规模数据的情况下,不可避免地要用计算手段来辅助进行。

     就像计算机世界基础由0和1、程序、递归构成一样,在Python学习也离不开这些,尤其是递归和循环,针对不是计算机专业出身,这些基础概念的学习补充对后续代码理解有很大的帮助。

关于python数据分析入门是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。