《大数据分析技术应用》课件-第2章:numpy模块实现数值计算_第1页
《大数据分析技术应用》课件-第2章:numpy模块实现数值计算_第2页
《大数据分析技术应用》课件-第2章:numpy模块实现数值计算_第3页
《大数据分析技术应用》课件-第2章:numpy模块实现数值计算_第4页
《大数据分析技术应用》课件-第2章:numpy模块实现数值计算_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

《大数据分析技术应用》输入标题输入标题第二章:numpy模块实现数值计算1.初识NumpyNumpy概述NumPy是一个开源的、功能强大的Python科学计算库,是Python的第三方扩展包,主要用于对多维数组执行科学计算与快速处理,也可实现更高级的数据操作和科学计算。NumPy主要包括:功能强大的N维数组对象。精密广播功能函数。集成C/C+和Fortran代码的工具。强大的线性代数、傅立叶变换和随机数功能。NumPy是什么?1.初识NumpyNumPy是Python科学计算基础库,可以便捷高效地处理大量数据,那么使用NumPy进行数据处理时具有以下优点:NumPy可以对数组进行高效的数学运算;NumPy的ndarray对象可以用来构建多维数组;NumPy能够执行傅立叶变换与重塑多维数组形状;NumPy提供了线性代数以及随机数生成的内置函数。Numpy概述使用NumPy做数据处理有哪些优点?1.初识NumpyNumpy概述NumPy库的数值计算广泛用于以下任务:(1)机器学习模型(2)图像处理和计算机图形学(3)实现各类数学任务1.初识Numpy安装Numpy(1)使用Python包管理器pip来安装NumPy安装NumPy需要基础环境是Python,NumPy安装之前必须成功安装了Python和Pip。安装命令如下:pipinstallnumpy1.初识Numpy安装Numpy(2)验证NumPy是否安装成功打开Python交互式界面,使用命令“importnumpy”导入NumPy,如果未出现错误提示,则表示已安装成功。NumPy安装成功后,就可以导入NumPy使用,代码如下:>>>importnumpy>>>numpy.__version__#查看版本导入NumPy一般使用别名np来代替,代码如下:>>>importnumpyasnp>>>np.__version__#查看版本2.创建NumPy数组对象创建NumPy多维数组对象方法1:使用array函数,通过嵌套的列表list创建数组对象。方法2:使用随机方式创建多维数组。方法3:将一维二维的数组变形为多维数组。2.创建NumPy数组对象创建NumPy多维数组对象1.使用arange函数指定取值范围创建数组对象在NumPy中,可以使用arange()函数来创建指定取值范围的数组对象,语法格式如下:numpy.arange(start,stop,step,dtype)其参数说明如下:

start:起始值,默认是0。

stop:终止值,注意生成的数组元素值不包含终止值。

step:步长,默认为1。

dtype:为可选参数,指定ndarray数组的数据类型。根据start与stop指定的范围以及step步长值,生成一个ndarray数组。2.创建NumPy数组对象创建NumPy多维数组对象2.使用linspace函数用指定范围内均匀间隔的数值创建等差数组对象linspace函数用于创建在指定的数值区间内返回均匀间隔的一维等差数组,默认均分50份,语法格式如下:np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)其参数说明如下:

start:代表数值区间的起始值;

stop:代表数值区间的终止值;

num:表示数值区间内要生成多少个均匀的样本。默认值为50;

endpoint:默认值为True,表示数列包含stop终止值,反之不包含;

retstep:默认值为True,表示生成的数组中会显示公差项,反之不显示;

dtype:代表数组元素值的数据类型。2.创建NumPy数组对象创建NumPy多维数组对象3.使用logspace函数用指定范围内的数值创建等比数组对象logspace()函数返回一个ndarray数组,用于创建等比数组,其语法格式如下:np.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None)其参数说明如下:

start:表示序列的起始值。

stop:表示序列的终止值。

num:表示数值范围区间内样本数量,默认为50。

endpoint:默认值为True,表示包含终止值,反之不包含。

base:表示对数函数的log底数,默认为10。

dtype:为可选参数,指定ndarray数组的数据类型。3.

ndarray的属性size属性和dtype属性使用size属性:size属性用于获取数组元素个数。使用dtype属性:dtype属性用于获取数组元素的数据类型。3.

ndarray的属性shape属性shape属性用于获取数组形状,即数组的行数和列数。其返回值一个由数组维度构成的元组,这个元组的元素数量就是维度的数目,即ndim属性值(秩),例如2行3列的二维数组,其形状可以表示为(2,3),分别为行数和列数,其秩为2。shape属性也可以用来调整数组维度的大小。1.输出数组的维度代码如下:importnumpyasnparray3=np.array([[2,4,6],[3,5,7]])print(array3.shape)3.

ndarray的属性2.通过shape属性修改数组的形状大小代码如下:array3.shape=(3,2)print(array3)输出结果:[[24][63][57]]3.

ndarray的属性ndim属性ndim属性用于获取NumPy数组的维数。例如,一维数组的维数是1,二维数组的维数是2。在NumPy中,数组的维数称为秩(rank),秩就是轴的数量,即数组的维数,一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,一维数组只有一个维度,只有一根轴,即axis=0,其内部的所有数据沿同方向依次排列,数组array1的结构如图3-1所示;二维数组的结构类似表格,有两个维度,即它有沿行方向和列方向的两根轴,其中axis=0,表示沿着第0轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作,数组array2的结构如图3-2所示。二维数组相当于是两个一维数组,其中第一个一维数组中每一行又是一个一维数组。3.

ndarray的属性ndim属性图3-1一维数组的轴3.

ndarray的属性itemsize属性itemsize属性用于获取数组每个元素占用内存空间的字节数。代码如下:#数据类型为int8,代表1字节array9=np.array([1,2,3,4,5],dtype=8)print(array9.itemsize)#数据类型为int64,代表4字节array10=np.array([1,2,3,4,5],dtype=32)print(array10.itemsize)#数据类型为int64,代表8字节array11=np.array([1,2,3,4,5],dtype=64)print(array11.itemsize)3.

ndarray的属性nbytes属性nbytes属性用于获取数组所有元素占用内存空间的字节数。代码如下:print(array9.nbytes,array10.nbytes,array11.nbytes)输出结果:520404.NumPy数组对象基本操作NumPy副本和视图1.赋值操作赋值操作是数组引用的一种方法。例如,将array1数组赋值给变量array2,被赋值后的变量array2与array1组具有相同的内存id。因此,无论操作array1、array2中哪个数组,另一个数组也会受到影响。2.通过数组切片创建数组视图切片操作返回的是数组视图,对数组视图的修改会影响到原数组。4.NumPy数组对象基本操作3.使用ndarray对象的view()方法返回一个新生成的数组副本ndarray对象的view()方法用于返回一个新生成的数组副本,因此对该数组的操作,不会影响到原数组。4.使用ndarray对象的copy()方法返回原数组的副本ndarray对象的copy()方法返回原数组的副本,对副本的修改不会影响到原数组。4.NumPy数组对象基本操作数组的高级索引1.利用整数数组进行索引利用整数数组进行索引,这里所说的整数数组可以是NumPy的ndarray对象,也可以是Python中内置的序列list、元组tuple等可迭代类型。利用整数数组进行索引,它可以选择数组中的任意一个元素,例如,选择第几行第几列的某个元素。(1)对于一维数组,可以使用正向或负向索引值选择一维数组中的任意一个元素,例如array1[[0,1,-1]],分别取数组array1的第1、2以及最后一个一维数组元素。4.NumPy数组对象基本操作(2)对于二维数组,通过数组元素的行索引值选择二维数组中的任意一行,例如array2[[0,2]],分别取array2的第1行和第3行。也可以通过数组元素的列索引值选择二维数组的任意一列,这时行使用“:”或“…”进行选择,例如array2[...,[0,2]]、array2[:,[0,2]],分别取array2的第1列和第3列。(3)对于二维数组,通过数组元素的行索引值与列索引值配对组合选择二维数组中的任意一个元素,例如array2[[0,1,2],[0,1,0]],其中左侧的括号[0,1,2]代表行索引,右侧的括号[0,1,0]代表列索引,将行、列索引值组合会得到(0,0)、(1,1)和(2,0),它们分别对应着输出原数组中的索引位置对应的数组元素,即第1行第1列数据元素、第2行第2列数组元素、第3行第1列数组元素。4.NumPy数组对象基本操作2.利用布尔类型的数组进行索引当输出的结果需要经过布尔运算(例如比较运算)时,此时会使用到另一种高级索引方式,即布尔数组索引。布尔数组索引通过布尔类型的数组对数组元素进行索引,布尔类型的数组可以通过手动设置布尔值构造,也可以通过关系运算来产生布尔类型的数组。4.NumPy数组对象基本操作3.花式索引花式索引也可以理解为整数数组索引,但是它们之间又略有不同,花式索引也会生成一个新的副本。(1)一维数组使用花式索引当原数组是一维数组时,使用一维整型数组作为索引,那么索引结果就是相应索引位置上的元素。(2)二维数组使用花式索引如果原数组是二维数组,那么索引数组也需要是二维的,索引数组的元素值与被索引数组的每一行相对应。4.NumPy数组对象基本操作3.花式索引(3)使用倒序索引数组实现花式索引代码如下:print(array2[[-4,-2,-1]])输出结果:[[891011][16171819][20212223]]4.NumPy数组对象基本操作3.花式索引(4)同时使用多个索引数组调整原数组元素的顺序还可以同时使用多个索引数组调整原数组元素的顺序,但这种情况下需要添加np.ix_。代码如下:print(array2[np.ix_([1,5,4,2],[0,3,1,2])])输出结果如下:[[4756][20232122][16191718][811910]]5.NumPy统计计算与分析1.计算numpy数组沿指定轴的最小值与最大值numpy中amin()和amax()这两个函数分别用于获取数组沿指定轴的最小值与最大值。(1)amin()函数沿指定的轴,获取数组中元素的最小值,并以数组形式返回;(2)amax()函数沿指定的轴,获取数组中元素的最大值,并以数组形式返回。对于二维数组来说,axis=1表示沿着水平方向,axis=0表示沿着垂直方向,如图所示。NumPy统计计算5.NumPy统计计算与分析2.计算numpy数组元素中最大值与最小值的差值numpy中ptp()函数用于计算数组元素中最大值与最小值的差值,即最大值-最小值。5.NumPy统计计算与分析3.沿指定轴计算numpy数组中百分位数百分位数,是统计学中使用的一种度量单位。numpy中percentile()函数用于沿指定轴计算数组中指定的百分位数,其语法格式如下:numpy.percentile(array,q,axis)其参数说明如下:

array:numpy数组;

q:要计算的百分位数,在0~100之间;

axis:沿着指定的轴计算百分位数。5.NumPy统计计算与分析4.计算numpy数组元素的中位数numpy中median()函数用于计算数组元素的中位数(中值)。5.沿指定的轴计算numpy数组中元素的算术平均值numpy中mean()函数用于沿指定的轴计算数组中元素的算术平均值,即元素之总和除以元素数量。5.NumPy统计计算与分析6.使用average()函数计算numpy数组元素的加权平均值numpy中average()函数根据在数组中给出的权重,计算数组元素的加权平均值。该函数可以接受一个轴参数axis,如果未指定,则数组被展开为一维数组。其语法格式如下:average(array,axis=1,weights=wt,returned=True))其参数说明如下:

array:numpy数组;

axis:沿着指定的轴计算百分位数;

weights:指定的权重,未指定权重时则权重默认为1;

returned:指定是否返回权重的和,设置为True则返回权重之和。5.NumPy统计计算与分析7.使用numpy的var()函数计算方差方差在统计学中也称样本方差,如何求得方差呢?首先我们要知道全体样本的平均值M,然后再求得每个样本值与均值之差的平方和,最后对差的平方和求均值。8.使用numpy的std()函数计算标准差标准差的计算公式如下:std=sqrt(mean((x-x.mean())**2NumPy中使用np.std()计算标准差。5.NumPy统计计算与分析

数组线性代数计算1.使用numpy的dot()函数计算两个矩阵的点积numpy中dot()函数按照矩阵的乘法规则,计算两个矩阵的点积。点积运算就是将array1数组的每一行元素与array2数组的每一列元素相乘再相加。当输入一维数组时返回一个结果值,若输入的多维数组则同样返回一个多维数组结果。5.NumPy统计计算与分析2.使用numpy的vdot()函数计算两个向量的点积numpy的vdot()函数用于计算两个向量的点积,与dot()函数不同。3.使用numpy的inner()函数计算数组之间的内积numpy的inner()函数用于计算数组之间的内积。当计算的数组是一维数组时,它与dot()函数相同,若输入的是多维数组则两者存在不同。4.使用numpy的matmul()函数计算两个矩阵的乘积numpy中matmul()函数用于计算两个矩阵的乘积,如果两个矩阵的维度不一致,就会产生错误。5.NumPy统计计算与分析5.使用对角线元素来计算矩阵的行列式numpy中linalg.det()函数使用对角线元素来计算矩阵的行列式。计算2*2(两行两列)的行列式,示例如下:[[1,2],[3,4]]通过对角线元素求行列式的结果(口诀:“一撇一捺”计算法):1*4-2*3=-2可以使用numpy.linalg.det()函数来完成上述过程的计算。5.NumPy统计计算与分析6.使用inv()函数计算矩阵的逆矩阵numpy中linalg.inv()函数用于计算矩阵的逆矩阵,逆矩阵与原矩阵相乘得到单位矩阵。5.NumPy统计计算与分析NumPy数组排序1.使用numpy.sort()函数对数组执行排序操作numpy.sort()函数用于对数组执行排序,并返回一个数组副本。其语法格式如下:numpy.sort(array,axis,kind,order)其参数说明如下:

array:待排序的数组;

axis:沿着指定轴进行排序,如果没有指定axis,默认在最后一个轴上排序,若axis=0表示按列排序,axis=1表示按行排序;

kind:默认为quicksort(快速排序);

order:若数组设置了字段,则order表示要排序的字段。5.NumPy统计计算与分析2.使用numpy.argsort()函数沿着指定的轴对数组的元素值进行排序操作numpy的argsort()函数用于沿着指定的轴,对数组的元素值进行排序,并返回排序后的元素索引数组。3.使用numpy.lexsort()函数按键序列对数组进行排序操作numpy的lexsort()函数用于按键序列对数组进行排序,并返回一个已排序的索引数组,类似于num

温馨提示

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

评论

0/150

提交评论