第9章 数据分析与可视化_第1页
第9章 数据分析与可视化_第2页
第9章 数据分析与可视化_第3页
第9章 数据分析与可视化_第4页
第9章 数据分析与可视化_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章数据分析与可视化数据分析概述科学计算数据可视化实例11:各学科成绩评估分析数据分析学习目标了解掌握熟悉熟悉了解什么是数据分析12熟悉numpy数组进行科学计算熟悉matplotlib绘制图表、pandas库处理数据34掌握numpy、matplotlib、pandas模块的作用目录☞点击查看本节相关知识点科学计算9.29.1数据分析概述☞点击查看本节相关知识点9.3数据可视化9.4实例11:各学科成绩评估分析☞点击查看本节相关知识点9.5数据分析☞点击查看本节相关知识点知识架构9.1数据分析概述1数据分析的流程2数据分析常用工具知识架构1numpy之数组对象ndarray2numpy的基本操作9.2

科学计算知识架构9.3数据可视化1数据可视化概述2pyplot之绘图区域3pyplot之图表与风格控制知识架构9.5数据分析1pandas数据结构2pandas的基本使用9.1数据分析概述什么是数据分析?数据分析指使用适当的统计分析方法对收集来的大量数据进行分析,从中提取有用信息形成结论,并加以详细研究和概括总结的过程。数据分析流程明确分析目的与思路数据处理数据展示数据收集数据分析126报告撰写3459.1数据分析概述数据分析常用工具9.1数据分析概述数据分析常用工具——NumPy实现高性能科学计算和数据分析的基础模块,主要包含以下内容:ndarray,一个具有矢量运算和复杂广播能力的多维数组;能够对整组数据进行快速运算,无需编写循环;线性代数、随机数生成以及傅里叶变换功能;用于集成由C、C++、Fortran等语言编写的代码API。9.1数据分析概述数据分析常用工具——matplotlibPython数据可视化绘图模块,其主要的优势主要有以下几点:matplotlib是开源免费的;matplotlib属于Python的扩展模块,它继承了Python面向对象、易读、易维护等特点。matplotlib可以借助Python丰富的第三方模块嵌入到用户界面应用程序,或嵌入到网页中。9.1数据分析概述数据分析常用工具——pandaspandas是一个基于numpy的数据分析模块,具有以下特点:包含一个快速高效、具有默认和自定义的索引的DataFrame对象。在内存数据结构和不同文件格式中读取和写入数据。智能数据对齐和缺失数据的集成处理。可以自由地删除或插入来自数据结构的列。按数据分组进行聚合和转换。高性能的数据合并和连接。生成可视化图表。时间序列功能。9.2科学计算ndarray对象ndarray对象是一个N维数组对象;ndarray对象具有矢量算术能力和复杂的广播能力,常用于科学计算;ndarray对象中每个元素可以用整数索引,索引序号从0开始;ndarray对象中存储的所有元素的类型必须相同。创建ndarray对象的函数函数说明np.array(object)利用常规Python列表或元组创建数组np.zeros((m,n))创建一个m行n列且元素均为0的数组np.ones((m,n))创建一个m行n列且元素均为1的数组np.empty((m,n))创建一个m行n列且不包含初始项的数组np.arange(x,y,i)创建一个由x到y且步长为i的数组np.linspace(x,y,n)创建一个由x到y且等分成n个元素的数组np.random.rand(m,n)创建一个m行n列且元素为随机值的数组9.2科学计算ndarray对象的常见属性函数说明ndarray.ndim数组的维度,也就是轴个数ndarray.shape表示数组维度大小的整数元组。如n行m列数组,shape属性为(n,m)ndarray.size数组元素的总个数ndarray.dtype数组元素的数据类型ndarray.itemsize数组中每个元素的字节大小9.2科学计算改变数组形状的属性和方法分类名称说明方法ndarray.reshape(n,m)不改变数组ndarray,返回一个形状为(n,m)的数组ndarray.resize(new_shape

)与reshape()功能相同,直接改变数组本身ndarray.ravel()对数组进行降维,返回数组的一个视图ndarray.swapaxes(axis1,axis2)将数组的任意两个维度进行调换ndarray.transpose()不改变数组ndarray,返回置换后的数组属性ndarray.T对数组进行轴对换,不改变数组本身9.2科学计算算术运算函数符号说明np.add(x1,

x2[,y])y=x1+x2np.subtract(x1,

x2[,y])y=x1-x2np.multiply(x1,

x2[,y])y=x1*x2np.divide(x1,

x2[,y])y=x1/x2np.floor_divide(x1,

x2[,y])y=x1//x2np.negative(x[,y])y=-xnp.mod(x1,

x2[,y])y=x1%x2np.power(x1,

x2[,y])y=x1**x29.2科学计算numpy可能会触发广播机制,该机制需要满足以下任一条件:数组在某维度上元素的长度相等。数组在某维度上元素的长度为1。arr1=np.array([[0],[1],[2],[3]])arr2=np.array([1,2,3])arr1+arr2示例:9.3数据可视化什么是数据可视化?数据可视化指的是将测量或计算产生的数字信息以图形图像的形式呈现给研究者,使他们能够更加直观地观察和提取数据表示的信息。数据可视化的基本思想是:每个数据作为单个图元表示(比如点、线段等),大量的数据构成由多个图元组成的图形,数据的分类属性以多维的形式表示,使得人们能够从不同的维度观察数据,以便对数据进行更深入地分析。9.3数据可视化Python绘图模块——pyplotpyplot模块隶属于matplotlib绘图工具库pyplot模块中封装了一套类似MATLAB命令式的绘图函数,用户只要调用pyplot模块中的函数,就可以快速绘图。注:在本章的后续内容中,将使用plt代替matplotlib.pyplotpyplot绘图模块的引入方式importmatplotlib.pyplotasplt9.3数据可视化pyplot绘图区域绘图区域用于绘制展示的图像。函数说明plt.figure(figsize=None,

facecolor=None)创建绘图区域plt.axes(rect,projection,axisbg)创建坐标系风格的子绘图区域plt.subplot(nrows,ncols,index)在当前绘图区域中创建一个子绘图区域plt.subplots(nrows,ncols,index)在当前绘图区域中创建多个子绘图区域9.3数据可视化figure()函数通过figure()函数可以创建一个Figure类对象,该对象代表新的绘图区域。figure(num=None,

figsize=None,

dpi=None,

facecolor=None,

edgecolor=None,

frameon=True,

clear=False,

**kwargs)示例效果图9.3数据可视化axes()函数axes(rect,

projection=None,

polar=False,

**kwargs)Figure对象允许将整个绘图区域划分为若干个子绘图区域,每个子绘图区域中都包含一个Axes对象,该对象具有属于自己的坐标系统。示例效果图9.3数据可视化subplot(nrows,ncols,index)函数会先将整个绘图区域等分为“nrows(行)*ncols(列)”的矩阵区域,并按照先行后列的计数方式对每个子区域进行编号,编号默认从1开始,后在index的位置上生成一个坐标系。例如:将整个绘图区域划分为2*2的矩阵区域9.3数据可视化pyplot之图表与风格控制pyplot模块中包含了一组快速生成基础图表的函数,这些函数的具体说明如表所示。函数说明plt.plot(x,

y)绘制折线图plt.boxplot(x,

notch)绘制箱形图plt.bar(x,

height,width,bottom)绘制条形图plt.barh(y,

width,

height,

left)绘制水平条形图plt.hist(x,

bins)绘制直方图plt.pie(data)绘制饼图plt.scatter(x,

y)绘制散点图plt.specgram(x,

NFFT,

Fs)绘制光谱图plt.stackplot(x)绘制堆积区域图plt.step(x,y,where)绘制步阶图plt.violinplot(dataset,positions,vert)绘制小提琴图plt.vlines(x,ymin,ymax)绘制垂直线plt.polar(theta,r)绘制雷达图(极区图)9.3数据可视化subplot()函数subplot(nrows,ncols,index)函数会先将整个绘图区域等分为“nrows(行)*ncols(列)”的矩阵区域,并按照先行后列的计数方式对每个子区域进行编号,编号默认从1开始,后在index的位置上生成一个坐标系。例如:将整个绘图区域划分为2*2的矩阵区域9.3数据可视化plot()函数pyplot中的plot()函数用来绘制简单的折线图,其基本语法格式如下:plot(x,y,fmt,*args,**kwargs

)x和y参数用于接收x和y轴所用到的数据,可以是列表或numpy数组;fmt参数是可选的,用于控制组成线条的字符串,由颜色值字符、风格值字符和标记值字符组成。参数含义:例如:使用plot()函数分别绘制正弦和余弦曲线9.3数据可视化plot()函数绘制图表时,还可以设置坐标系标签的信息,比如图表标题、坐标名称、坐标刻度等。pyplot模块提供的设置坐标系标签的函数及说明如表所示。函数说明plt.title()设置当前坐标的标题plt.text()为坐标图轴添加注释plt.xlabel()设置当前x轴的标签名称plt.ylabel()设置当前y轴的标签名称plt.xticks()设置当前x轴刻度位置的标签与取值plt.yticks()设置当前y轴刻度位置的标签与取值plt.xlim()设置当前x轴的取值范围plt.ylim()设置当前y轴的取值范围plt.legend()在当前坐标图放置一个图例9.3数据可视化plot()函数例如:使用plot()函数绘制两条曲线:一条描述x和x*x的关系,另一条描述的是x和x*x*x的关系,并给当前的坐标系添加标题、标签名称和图例。9.4实例11:各学科成绩评估分析各学科成绩评估根据表中各班级各学科的平均成绩绘制雷达图,对各班级的考试情况进行评估。需求:班级语文数学英语物理化学生物高二1班959685639186高二2班759366858876高二3班8676969367879.5数据分析pandas的数据结构SeriesDataFrameSeries表示一维数据,类似于一维数组,能够保存任意类型的数据,比如整型、浮点型等。Series由数据和与之相关的整数或标签(自定义)索引两部分组成,默认它会给每一项数据分配编号,编号的范围从0到N-1(N为长度),其结构示意如图所示。Series9.5数据分析使用Series()函数可以直接创建Series对象,该函数的语法格式如下:pd.Series(data=None,

index=None,

dtype=None)data参数代表接收的数据,该参数可接收一维数组、列表、字典等;index参数代表自定义行标签索引,若该参数没有接收到数据,默认使用0~N的整数索引;dtype参数代表数据类型。参数含义:Series9.5数据分析pandas的数据结构SeriesDataFrameDataFrame类似于电子表格或数据库表,由行和列组成。DataFrame也可以视为一组共享行索引的Series对象,其结构示意如图所示。DataFrame9.5数据分析通过DataFrame()函数可直接创建DataFrame对象,该函数的语法格式如下:pd.DataFrame(data=None,index=None,columns=None,dtype=None)DataFramedata参数代表接收的数据,该参数可以是二维数组、字典(包含Series对象)、Series对象或另一个DataFrame对象等;index参数代表自定义行标签索引,若该参数没有接收到数据,默认使用0~N的整数索引;dtype参数代表数据类型。参数含义:9.5数据分析Series和DataFrame对象的一些常见属性属性说明Series/DataFrame.index获取行索引(行标签)Series/DataFrame.values返回包含数据的数组Series/DataFrame.dtype返回基础的数据类型对象Series/DataFrame.shape返回基础形状的元组Series/DataFrame.size返回元素个数DataFrame.columns获取DataFrame对象的列索引(列标签)9.5数据分析pandas库的基本使用pandas是数据分析的优选工具,它提供了大量使用户快速且便捷处理数据的函数和方法,包括算术运算与数据对齐、IO工具、预处理和可视化。pandas的常见功能1.算术运算与数据对齐2.IO操作3.数据预处理4.数据可视化9.5数据分析算术运算与数据对齐pandas具有自动对齐的功能,它能够将两个数据结构的索引对齐,这一点尤其体现在算术运算上。参与运算的两个数据结构的基础形状可以不同,具有的索引也可以不同。当pandas中的两个数据结构进行运算时,它们会自动寻找重叠的索引进行计算,若索引不重叠则自动赋值为NaN。若原来的数据都是整型,生成NaN以后会自动转换成浮点型。任何数与NaN计算的结果都为NaN。pandas中算术运算的方法方法说明x.add(y,fill_value)等价于x+yx.sub(y,fill_value)等价于x-yx.mul(y,fill_value)等价于x*yx.div(y,fill_value)等价于x/yx.mod(y,fill_value)等价于x%yx.pow(y,fill_value)等价于x**y9.5数据分析IO操作常见的处理方式是将待分析的数据以文件的形式存储到本地,之后再对文件进行读写操作。pandas模块提供了一系列读写不同格式文件的函数和方法,关于这些函数和方法的说明如表所示。分类名称说明函数pd.read_csv()读取CSV文件,返回Series/DataFramepd.read_json()读取JSON文件,返回Series/DataFramepd.read_html()读取HTML文件,返回Series/DataFramepd.read_sql()根据SQL语句读取数据表,返回Series/DataFramepd.read_table()读取表格,返回Series/DataFramepd.read_excel()读取Excel表格,返回Series/DataFrame方法Series/DataFrame.to_csv()将Series/DataFrame写入到CSV文件中Series/DataFrame.to_json()将Series/DataFrame写入到JSON文件中Series/DataFrame.to_html()将Series/DataFrame写入到HTML文件中Series/DataFrame.to_sql()将Series/DataFrame写入到数据库表中Series/DataFrame.to_excel()将Series/DataFrame写入到Excel表格中9.5数据分析IO操作示例最常见的IO操作是对CSV文件的读写。pd.read_csv(filepath_or_buffer,

sep=',

',

delimiter=None,

header='infer',

names=None,

index_col=None,

usecols=None,

squeeze=False,

prefix=None,

mangle_dupe_cols=True,

dtype=None,na_values...)filepath_or_buffer:表示文件的路径。sep:指定使用的分隔符,默认用“,”分隔。header:指定哪一行作为列名,默认header=0,将文件中第一行数据作为列名;若无需设置列名,可以设为header=None。names:指定列名。index_col:指定哪一列数据作为行索引。prefix:给列名添加前缀。参数含义:9.5数据分析数据预处理常见的处理方式是将待分析的数据以文件的形式存储到本地,之后再对文件进行读写操作。pandas模块提供了一系列读写不同格式文件的函数和方法,关于这些函数和方法的说明如表所示。分类函数或方法说明数据清洗pd.isnull(obj)检查obj中是否有空值,返回布尔数组pd.notnull(obj)检查obj中是否有非空值,返回布尔数组Series/DataFrame.dropna(axis)删除所有包含空值的行或列Series/DataFrame.fillna(x)使用x替换所有的NaNSeries/DataFrame.duplicated()标记重复记录Series/DataFrame.drop_duplicates()删除重复记录Series/DataFrame.astype(dtype)将数据转换为dtype类型pd.to_numeric(x)将x转换为数字类型9.5数据分析数据预处理常见的处理方式是将待分析的数据以文件的形式存储到本地,之后再对文件进行读写操作。pandas模块提供了一系列读写不同格式文件的函数和方法,关于这些函数和方法的说明如表所示。分类函数或方法说明数据集成pd.concat(objs,

axis,

join)沿着轴方向将objs进行堆叠合并pd.merge(left,

right,

how,

on)根据不同的键将left和right进行连接Series/DataFrame.join(other,

on,

how)通过指定的列连接otherSeries/DataFbine_first(other)使用other填充缺失的数据9.5数据分析数据预处理常见的处理方式是将待分析的数据以文件的形式存储到本地,之后再对文件进行读写操作。pandas模块提供了一系列读写不同格式文件的函数和方法,关于这些函数和方法的说明如表所示。分类函数或方法说明数据变换DataFrame.stack(level,

dropna)把DataFrame对象的列索引转换成行索引Series/DataFrame.unstack(level,

fill_value)把Series/DataFrame的行索引转换成列索引DataFrame.pivot(index,

columns,values)根据index和columns重新组织DataFrameSeries/DataFrame.rename(mapper,index,columns)重命名个别行索引或列索引的名称数据规约pd.cut(x,

bins,

right)对数据进行离散化处理pd.get_dummies(data,

prefix)对类别数据进行哑变量处理9.5数据分析数据预处理读取的数据中可能会带有一些无效值,无效值的处理方法有以下两种:(1)忽略(2)替换9.5数据分析数据可视化matplotlib是众多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论