热门推荐
python数据分析与可视化
2025-01-02 12:26

1.简单、易学

python数据分析与可视化

2.免费、开源

3.完备的社区生态

4.高级语言

5.强大的第三方类库

6.可扩展性、可嵌入性、跨平台性

1.ipython——科学计算标准工具集的组成部分

是一个增强的python shell,目的是提高编写、测试、调试python代码的速度

主要用于交互式数据并行处理,是分布式计算的基础架构

提供了一个类似于mathematica的HTML笔记本,一个基于qt框架的gui控制台,具体绘图

2.numpy(numerical python)——python科学计算的基础包

快速高效的多维数组对象ndarray

对数组执行元素级的计算以及直接对数组执行的数学运算的函数

读写硬盘上基于数组的数据集的工具

线性代数运算、傅里叶交换,以及随机数生成的功能。

将c、c++?fortran代码集成到python的工具。

3.Scipy——专门解决科学计算中各种标准问题域的集合

scipy.integrate 数值积分例程和微分方程求解器

scipy.linalg 扩展了由Numpy.linaig提供的线性代数例程和矩阵分解功能

scipy.optimize 函数优化器(最小化器)以及根查找算法

scipy.signal 信号处理工具

scipy.sparse 稀疏矩阵和稀疏线性系统求解器

scipy.special specfun(这是一个实现了许多常用数学函数的fortran库)

scipy.stats 检验连续和离散概率分布、各种统计检验方法,以及更好描述

scipy.weave 利用内联c++代码加速数组计算的工具

4.pandas——数据分析核心库

提供了一系列能够快速、便捷地处理结构化数据的数据结构和函数

高性能的数组计算功能以及电子表格和关系型数据库(如sql)灵活的数据处理功能

复杂精细的索引功能,以便捷地完成重塑、切片和切块、聚合及选取数据子集等操作。

5.matplotlib——绘制数据图表的python库

python的2D绘图库,非常适合创建出版物上用的图标

操作比较容易,只需要几行代码即可生成直方图、功率谱图、条形图、错误图和散点图等图形

提供了pylab的模块,其中包括了numpy和pyplot中许多常用的函数,方便用户快速进行计算绘图

交互式的数据绘图环境,绘制的图表也是交互式的。

6.scikit-learn——数据挖掘和数据分析工具

简单有效,可以供用户在各种环境下重复使用。

封装了一些常用的算法方法

基本模块主要有数据预处理、模型选择、分类、聚类、数据降维和回归6个。

  • Text file 为纯文本型
  • folder为文件夹
  • python3表示python运行脚本
 
 
 

1,数组创建

numpy.array(object,dtype=None,copy=True,order=‘K’,subok=False,ndmin=0)

参数名称说明object接受array_like。表示想要创建的数组。五默认。dtype接受data-type。表示数组所需的数据类型。如果未给定,则选择保存对象所需的最小类型。默认为Nonendmin接收int。指定生成数组应该具有的最小维数。默认为None。
 

2,数组属性:ndarray(数组)是存储单一数据类型的多维数组。

属性说明ndim返回int。表示数组的维数shape返回tuple。表示数组的尺寸,对于n行m列的矩阵,形状为(n,m)size返回int。表示数组的元素总数,等于数组形状的乘积dtype返回data-type。描述数组中元素的类型itemsize返回int。表示数组的每个元素的大小(以字节为单位)。
 

3,数组的特点

  • 多维数组,具有矢量运算能力,且快速,节省空间
  • 可对整租数据进行快速运算的标准数学函数、线性代数、随机数生成等功能
 
 

重新设置数组的shape属性

 

使用arange函数创建数组(等差数组)

 

使用linspace函数创建数组

使用logspace函数创建等比数列

 

使用zeros函数创建数组(生成多维数组)

使用eye函数创建数组

 
 
 
 

无约束条件下生成随机数

生成服从均匀分布的随机数

 

生成服从正态分布的随机数

生成给定上下范围的随机数,如创建一个最小值不低于2、最大值不高于10的2行5列数组

 
 
  1. 一维数组的索引
 
  1. 多维数组的索引
 
  1. 多维数组的索引

使用整数和布尔值索引访问数据

 
 

改变数组形状

 

使用ravel函数展平数组

 

使用flatten函数展平数组

 

组合数组(数组的拼接

  • 使用hstack函数实现数组横向组合:np.hstack((arr1,arr2))
  • 使用vstack函数实现数组纵向组合:np.vstack((arr1,arr2))
  • 使用concatenate函数实现数组横向组合:np.concatenate((arr1,arr2),axis = 1)
  • 使用concatenate函数实现数组纵向组合:np.concatenate((arr1,arr2),axis = 0)

切割数组

  • 使用hsplit函数实现数组横向分割:np.hsplit(arr1,2)
  • 使用vsplit函数实现数组纵向分割:np.vsplit(arr,2)
  • 使用split函数实现数组横向分割:np.split(arr,2,axis=1)
  • 使用split函数实现数组纵向分割:np.split(arr,2,axis=0)

创建NumPy矩阵

  • 使用mat函数创建矩阵:matr1 = np.mat(“1 2 3;4 5 6;7 8 9”)
  • 使用matrix函数创建矩阵:matr2 =np.matrix([[1,2,3],[4,5,6],[7,8,9]])
  • 使用bmat函数合成矩阵:np.bmat(“arr1 arr2;arr1 arr2”)
 

认识ufunc函数

通用函数(universal function) ,是一种能够对数组中所有元素进行操作的函数。

  • 四则运算:加(+)、减(-)、乘(*)、除(/)、幂(**)。数组间的四则运算表示对每个数组中的元素分别进行四则运算,所以形状必须相同。
  • 比较运算:>、<、==、>=、<=、!=。比较运算返回的结果是一个布尔数组,每个元素为每个数组对应元素的比较结果。
  • 逻辑运算:np.any函数表示逻辑“or”,np.all函数表示逻辑“and”,运算结果返回布尔值。
 

通用函数的广播机制

认识ufunc函数
ufunc函数的广播机制
  • 一维数组的广播机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EG1NXJNa-1628178748057)(E:学习笔记数据分析与应用一维数组_广播机制.png)]

  • 二维数组的广播机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vett1uRt-1628178748059)(E:学习笔记数据分析与应用二维数组_广播机制.png)]

 
 
 

NumPy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式

  • sava函数是以二进制的格式保存数据。np.sava("…/tmp/save_arr",arr)
  • load函数是从二进制的文件中读取数据。np.load("…/tmp/save_arr.npy")
  • savez函数可以将多个数组保存到一个文件中。np.savez(’…/tmp/savez_arr’,arr1,arr2)
  • 存储时可以省略扩展名,但读取不能省略扩展名。
 
 
  • savetxt函数是将数组写到分隔符隔开的文本文件中。
  • np.savetxt("…/tmp/arr.txt",arr,fmt="%d",delimiter=",")
  • loadtxt函数执行的是把文件加载到一个二维数组中。
  • np.loadtxt("…/tmp/arr.txt",delimiter=",")
  • genfromtxt函数面向的是结构化数组和缺失数据。
  • np.genfromtxt("…/tmp/arr.txt",delimiter=",")
 
 

直接排序

  • sort函数是最常用的排序方法: arr.sort()
  • sort函数也可以指定一个axis参数,使得sort函数可以沿着指定轴对数据集进行排序。axis=1为沿横轴排序;axis=0为沿纵轴排序。

间接排序

  • argsort函数返回值为重新排序值的下标。arr。argsort()
  • lexsort函数返回值是按照最后一个传入数据排序的。np,lexsort((a,b,c))

去重与重复数据

  • 通过unique函数可以找出数组中的唯一值并返回已排序的结果。
  • np.tile(A,reps)
  • tile函数主要有两个参数,参数"A"指定重复的数组,参数"reps"指定重复的次数
  • numpy.repeat(a,repeats,axis=None)
  • repeat函数主要有三个参数,参数"a"是需要重复的数组元素,参数"repeats"是重复次数,参数"axis"指定沿着哪个轴进行重复,axis = 0表示按行进行元素重复;axis = 1表示重复。
  • 在两个函数的主要区别在于,tile函数是对数组进行重复操作,repeat函数是对数组中的每个元素进行重复操作。

常用的统计函数

当axis=0时,表示沿着纵轴计算。当axis=1时,表示沿着横轴计算。默认时计算一个总值。

函数说明sum计算数组的和mean计算数组均值std计算数组标准查var计算数组方差min计算数组最小值max计算数组最大值argmin返回数组最小元素的索引argmax返回数组最大元素的索引cumsum计算所有元素的累计和cumprod计算所有元素的累计积
 
 
  • Matplotilb是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表,可根据数据集(dataframe,series)自行定义x,y轴,绘制图形(线形图,柱状图,直方图,密度图,散步图等等,能够满足大部分需要。
  • matplotlib最早是为了可视化癫痫病人的脑皮层电图相关的信号而研发,因为在函数的设计上参考了matlab,所以叫做matplotlub。
  • 官方文档:https://matplotlib.org/
  • matplotlib中最基础的模块是pyplot

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BlNoESdD-1628178748060)(E:学习笔记数据分析与应用图形示例.png)]

 

基本流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jtL32dgI-1628178748061)(E:学习笔记数据分析与应用绘图流程.png)]

掌握pyplot基础语法

1.创建画布与创建子图

第一部分主要作用时构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制。

函数名称函数作用plt.figure创建一个空白画布,可以指定画布大小,像素。figure.add_subplot创建并选中子图,可以指定子图的行数,列数,与选中图片编号。
2. 添加画布内容

第二部分时绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后。

函数名称函数作用plt.title在当前图形中添加标题,可以指定标题的名称、位置、颜色、字体大小等参数。plt.xlabel在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数。plt.ylabel在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数。plt.xlim指定当前图形x轴的范围,只能确定一个数值区间,而无法使用字符串标识。plt.ylim指定当前图形y轴的范围,只能确定一个数值区间,而无法使用字符串标识。plt.xticks指定x轴刻度的数目与取值。plt.yticks指定y轴刻度的数目与取值pit.legend指定当前图形的图例,可以指定图例的大小、位置、标签。
3. 保存与展示图形

第三部分主要用于保存和显示图形。

函数名称函数作用plt.savafig保存绘制的图片,可以指定图片的分辨率,边缘的颜色等参数plt.show在本机显示图形。
  • 散点图(scatter diagram)又称为散点分布图,是以一个特征为横坐标,另一个特征为纵坐标,利用坐标点(散点)的分布形态反映特征的统计关系的一种图形。
  • 值是由在图表中的位置表示,类别是由图表中的不同标记表示,通常用于比较跨类别的数据。

scatter函数

matplotlib.pyplot.scatter(x,y,s=None,marker=None,alpha=None,**kwargs)

常用参数及说明如下表所示
参数名称说明x,y接受array.表示x轴和y轴对应的数据。无默认。s接受数值或一维的array。指定点的大小,若传入一维array则表示每一个点的大小。默认为None。c接收颜色或者一维的array。指定点的颜色,若传入一维array则表示每个点的颜色。默认为Nonemarker接收特定string。表示绘制的点的类型。默认为None。alpha接收0-1的小数。表示点的透明度。默认为None。
 
 

plot函数

 

plot函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数主要如下。

参数名称说明x,y接收array。表示x轴和y轴对应的数据。无默认。color接收特定string。指定线条的颜色。默认为Nonelinestyle接收特定string。指定线条类型。默认为"-"。marker接收特定string。表示绘制的点的类型。默认为None。alpha接收0-1的小数。表示点的透明度。默认为None。
 
 
  • 直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据公布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。
  • 用直方图可以比较直观地看出产品质量特征的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。

bar函数

 
常用参数及说明如下表所示。
参数名称说明left接收array。表示x轴数据。无默认。height接收array。表示x轴所代表数据的数量。无默认。width接收0-1之间的float。指定直方图宽带。默认为0.8color接收特定string或者包含颜色字符串的array.表示直方图颜色。默认为None。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ivdxTXJh-1628178748063)(E:学习笔记数据分析与应用直方图.png)]

 
 
  • 饼图(Pie Graph)是将各项的大小与各项总和的比例显示在一张"饼"中,以"饼"的大小来确定每一项的占比。
  • 饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于显示每组数据相对于总数的大小,而且显现方式直观。

pie函数

 
常用参数及说明如下表所示。
参数名称说明参数名称说明x接收array。表示用于绘制饼图的数据。无默认。autopct接收特定string。指定数值的显示方式。默认为None。explode接收array。表示指定项离饼图圆心为n个半径。默认为None。pctdistance接收float。指定每一项的比例和距离饼图圆心n个半径。默认为0.6labels接收array。指定每一项的名称。默认为None。labeldistance接收float。指定每一项的名称和距离饼图圆心多少个半径。默认为1.1。color接收特定string或者包含颜色字符串的array。表示饼图颜色。默认为None。radius接收float。表示饼图的半径。默认为1。
 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rmg6vdjM-1628178748064)(E:学习笔记数据分析与应用饼图.png)]

  • 箱线图(boxplot)也称箱线图,其绘制需使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。
  • 箱线图利用数据中的五个统计量(下边缘、下四分位数、中位数、上四分位数和上边缘)来描述数据,它也可以粗略地看出数据是否具有对称性、分布的分散程度等信息。特别可以用于对几个样本的比较。

boxplot函数

 
参数名称说明参数名称说明x接收array。表示用于绘制箱线图的 数据。无默认。positions接收array。表示图形位置。默认 为None。notch接收boolean。表示中间箱体是否有 缺口。默认为None。widths接收scalar或者array。表示每个 箱体的宽度。默认为None。sym接收特定sting。指定异常点形状。 默认为None。labels接收array。指定每一个箱线图的 标签。默认为None。vert接收boolean。表示图形是横向纵向 或者横向。默认为None。meanline接收boolean。表示是否显示均值 线。默认为False。

它也可以粗略地看出数据是否具有对称性、分布的分散程度等信息。特别可以用于对几个样本的比较。

boxplot函数

    以上就是本篇文章【python数据分析与可视化】的全部内容了,欢迎阅览 ! 文章地址:http://keair.bhha.com.cn/quote/5971.html 
     动态      相关文章      文章      同类文章      热门文章      栏目首页      网站地图      返回首页 康宝晨移动站 http://keair.bhha.com.cn/mobile/ , 查看更多