APP下载

Python语言在大数据分析中的应用

2020-09-26冯艳茹

电脑知识与技术 2020年24期
关键词:数据分析大数据

冯艳茹

摘要:Python语言简洁,易学,具有丰富的标准库和第三方库,它不仅在快速开发应用程序上显示出极高的开发效率,而且在大数据、人工智能等数据科学领域得到了极大的应用。该文重点阐述了Python语言和数据分析的关系以及Python语言是如何实现数据分析的。

关键词:数据分析;大数据;Python;Matplotlib

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2020)24-0072-02

隨着计算机技术的发展以及科技的进步,各行各业每天都在产生和收集大量的数据,21世纪已经进入了大数据时代。在当前的大数据时代背景下,各个领域的发展都离不开数据的分析,决策将更加依赖于数据和分析,而并非基于经验和直觉。数据分析是大数据领域不可缺少的环节。数据分析是指使用适当的统计分析方法对收集来的大量数据进行分析,并从中提取有用信息并形成结论。数据分析的任务就是从海量无序的大量数据中找到有价值的数据,给数据赋予新的意义,并为决策者提供参考[1]。Python是数据分析的撒手锏。2017年Python语言超越其他编程语言,成了年度最受欢迎的编程语言,受到了众多编程人员的青睐。Python具有丰富的库,在快速开发时展现出非常大的优势,在数据分析、数据科学、人工智能等学习工作中都不可避免地使用Python,成为继C++和Java之后的第三大语言。

1 Python语言及特点

Python 语言是一种使用广泛、跨平台的高级程序设计语言,由荷兰数学家Guido Van Rossum设计创造[4]。Python的设计哲学强调代码的可读性和简洁的语言,相比于C++或Java,Python能够用更少的代码表达想法。自1991公开发布第一个版本至今,Python经过了多次变革并增加了许多新特性,更加简洁规范,它已被广泛应用于系统管理任务的处理和web编程。Python语言具有以下特点:

1)简单易学

相比其他编程语言(比如 C语言),Python代码非常简单,上手容易,非常适合初学者。比如我们要完成某个功能,Python的代码量可能是C语言的十分之一,如果使用Python来写程序,其工作效率会显著提高,这是 Python具有巨大吸引力的一大特点。

2)面向对象

Python中的一切皆是对象。既支持面向过程编程,也支持面向对象编程。程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。

3)可移植性

Python程序可以在多个平台上运行,这些平台包括Linux、Windows、Android平台等,只需为平台提供了相应的Python解释器。

大部分语言为编译型或解释型,如C/C++等为编译型,python为解释型语言。C源文件通过预处理、编译、汇编、链接,最终机器执行目标代码(二进制)。而Python则通过解释器把源代码转换成称为字节码的中间形式,Python虚拟机用解释的方式执行代码。

4)丰富的库

Python标准库确实很庞大,它可以帮助你处理各种工作,包括正则表达式、数据库、网页浏览器、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)Tk和其他与系统有关的操作。除了标准库以外,还有许多其他高质量的库,如 wXPython、Twisted和Python图像库等。

5)规范的代码

Python采用强制缩进的方式使得代码具有很好的可读性。

2 Python和数据分析

在数据分析和数据挖掘领域,Python、R语言和SAS等都是非常受欢迎的编程工具。Python和R语言都是开源的,普遍应用于互联网行业,而SAS为商业付费软件,堪称金融和医疗行业的标准工具。数据分析需要和数据进行大量的交互、探索性计算以及数据结果的可视化等[2]。Python有越来越多的第三方库可供使用,目前已有超过15万个的第三方包。相比于R语言、SPSS等语言,Python具有适合大数据分析的第三方库,比如Numpy、Pandas、Matplotlib 、Scipy、scikit-learn等可以实现数据统计、数据的可视化等功能,从而可以完成不同的数据分析任务。

2.1 Numpy库——数据分析基础工具

Numpy是一个科学计算库,是Python处理数组和矢量运算的工具包,是进行高性能计算和数据分析的基础。Numpy对于矢量运算不仅提供了很多方便的接口,而且其效率比用户手动使用Python语言实现数组运算要更高。虽然Numpy库本身没有提供很多高级的数据分析功能,但是学习和使用Numpy库将有助于数据分析工具的使用。

2.2 Pandas库——数据分析专用库

Pandas是一个构建在Numpy之上的高性能数据分析库,它能够对数据进行排序、分组、归并等操作,也能够求和、求极值、求标准方差等统计计算。Pandas是数据分析的专用库,用来处理结构化的数据。数据分析的第一步是要从外部获取数据,Pandas提供了多种I/O API函数,可以读取csv、txt等文件,也可以读取xlsx或 SQL Server数据文件等多种类型的文件,如表1所示。

2.3 Matplotlib库——数据可视化工具

Matplotlib是Python最著名的绘图库之一,Matplotlib配合Numpy模块利用,可以实现科学计算结果的可视化显示,所以Matplotlib是Python进行数据分析的一个非常重要的可视化工具。使用Matplotlib模块绘图主要用的是Matplotlib的plot工具包,该工具包提供了与MATLAB类似的绘图API,封装了复杂的绘图对象结构,用户只需调用pyplot模块所提供的函数,使用少量的代码就可以快速绘制出高质量的直方图、散点图、柱形图等二维或三维图形。直方图能够直观地反映出数据的体态特征[3],图1 随机生产满足mu为100、sigma为20的正态分布的10万个智商数据的直方图。

3 scikit-learn实现数据分析

scikit-learn是一个构建在Numpy、Scipy、Matplotlib之上的机器学习库,所支持的算法、模型均是经过广泛验证的,涵盖了分类、回归、聚类三个大类,还提供了数据降维、模型选择与数据预处理等[2]。下面说明如何使用scikit-learn实现Logistic回归的基本过程。

3.1算法设计

Logistic回归是一种广义的线性分析模型,实质上是以回归的形式解决分类问题的。假设特征向量x有n个属性值x=(x1,x2,…,xn),线性分析模型由各个属性的线性组合得到预测函数,即:

f(x)=w1x1+w2x2+…+wnxn+b

表示成向量的形式,即:

f(x)=wTx +b

其中,w是权重,b是偏值。线性模型的算法则为w和b的学习。线性回归的任务就是通过训练集来学习和得到w和b。使得对训练集的预测值和真实的回归目标值之间的均方误差最小。

对于给定的样例数据点(x,y),若线性模型对给定样本点的预测值f(x)接近于真实值y,就形成了线性回归模型。即:

y=wTx +b

线性回归模型表征了输入x与输出y之间的一种线性关系。

3.2使用sklearn自带的iris数据集进行训练和预测

如果没有安装Python科学计算包,建议使用安装和使用Anaconda。Anaconda是一款非常优秀的Python集成开发环境,集成了近200个数据科学相关的第三方包,用于大规模数据处理、预测分析和科学计算的Python发行版,还可以在它上面构建人工智能的开发环境。下载地址如下:

https://www. anaconda.com/download/

本文中的代码均在Anaconda下调试通过。

1)导入所需要的模块

#导入numpy模块

import numpy as np  #np是numpy的别名

#导入sklearn中的linear_model和datasets模块

from sklearn import linear_model,datasets

2)导入数据,并将数据切分为训练集和测试集

Sklearn提供了从样本数据中创建训练数据和测试数据的方法。自带了一些案例数据,它位于Python安装目录下\lib\site-package\sklearn\datasets子目录下,为这些数据提供了专门的访问接口。

#创建数据

iris=datasets.load_iris()

X=iris.data

y=iris.target

X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=1)

3)选择模型,进行训练和预测

scikit-learn中的Logistic回归在sklearn的Linear_model模块中的LogisticRegression类中实现的,主要是实现二分类的问题。

log_reg=linear_model. LogisticRegression()

lr=log_reg.fit(X_train,y_train)

log_reg.predict(X_test)

说明:scikit-learn总是把从训练集数据中得到的值保存在以下划线结束的属性中,这是为了将其与用户设置的参数区分开来。w(权重或系数)被保存在coef_属性中,而b(偏移)被保存在intercept_属性中。

4 结束语

综上分析,Python语法简洁而清晰,具有丰富和强大的类库。Python可以说是无所不能,广泛应用于web编程、爬虫、人工智能等,同时它能够很方便地和其他语言制作的模块轻松地融合在一起,所以又被俗称为“胶水语言”。使用python进行数据分析是十分便利且高效,因此它被认为是非常优秀的数据分析工具。

参考文献:

[1] 陈红波,刘顺祥.数据分析从入门到进阶[M].北京:机械工业出版社,2019.

[2] 吕云翔,李伊琳,王肇一.Python数据分析实战[M].北京:清华大学出版社,2019.

[3] 江紅,余青松.Python程序设计与算法基础教程[M].北京:清华大学出版社,2019.

[4] 徐玉芳,苏斌.Python语言特点及其在机器学习中的应用[J].计算机产品与流通,2019(12):142.

【通联编辑:王力】

猜你喜欢

数据分析大数据
浅析大数据时代对企业营销模式的影响