数据科学技术与应用2多维数据与计算课件.pptx

上传人(卖家):三亚风情 文档编号:3326113 上传时间:2022-08-20 格式:PPTX 页数:29 大小:377.87KB
下载 相关 举报
数据科学技术与应用2多维数据与计算课件.pptx_第1页
第1页 / 共29页
数据科学技术与应用2多维数据与计算课件.pptx_第2页
第2页 / 共29页
数据科学技术与应用2多维数据与计算课件.pptx_第3页
第3页 / 共29页
数据科学技术与应用2多维数据与计算课件.pptx_第4页
第4页 / 共29页
数据科学技术与应用2多维数据与计算课件.pptx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、多维数据结构与运算多维数据计算 数据分析的数据组织方式 向量、矩阵 高效计算 NumPy库提供了多维数组ndarray 支持丰富数据表示方式 Anaconda环境中已安装 import numpy as np ndarray:NumPy核心 N-dimensional array,N维数组 相同数据类型的元素组成的多维数组 数组大小需事先指定案例2-1:学生课程考试成绩 5位同学参加了学业水平考试,考试科目共7门姓名姓名MathMathEnglishEnglishPythonPythonChineseChineseArtArtDatabaseDatabasePhysicsPhysics王微王微

2、70857790828489肖良英肖良英60648075809290方绮雯方绮雯90938887869091刘旭阳刘旭阳80829188838680钱易铭钱易铭887278909173802.1.1 一维数组对象 创建一维数组分别保存学生姓名和考试科目,访问数组元素 np.array(),基于列表创建一维数组 names=np.array(王微,肖良英,方绮雯,刘旭阳,钱易铭)namesarray(王微,肖良英,方绮雯,刘旭阳,钱易铭,dtype=subjects=np.array(Math,English,Python,Chinese,Art,Database,Physics)subject

3、sarray(Math,English,Python,Chinese,Art,Database,Physics,dtype=names.ndim#数组维度1 names.size#数组元素个数5 names.dtype#数组数据类型dtype(names2方绮雯 subjects-3Art namesarray(王微,肖良英,方绮雯,刘旭阳,钱易铭,dtype=subjectsarray(Math,English,Python,Chinese,Art,Database,Physics,dtype=namesarray(王微,肖良英,方绮雯,刘旭阳,钱易铭,dtype=subjectsarray

4、(Math,English,Python,Chinese,Art,Database,Physics,dtype=subjects 0,2,4#两层括号,两层括号,0,2,4为为索引列表索引列表array(Math,Python,Art,dtype=names 1:4#抽取索引为1、2、3的元素array(肖良英 方绮雯 刘旭阳,dtype=subjects:-1:2#抽取索引为0、2、4的元素array(Math,Python,Art,dtype=names(names=王微)|(names=钱易铭)array(王微,钱易铭,dtype=mask=(names=王微)|(names=钱易铭)m

5、askarray(True,False,False,False,True,dtype=bool)names mask array(王微 钱易铭,dtype=scores=np.array(70,85,77,90,82,84,89,60,64,80,75,80,92,90,90,93,88,87,86,90,91,80,82,91,88,83,86,80,88,72,78,90,91,73,80)scoresarray(70,85,77,90,82,84,89,60,64,80,75,80,92,90,90,93,88,87,86,90,91,80,82,91,88,83,86,80,88,72

6、,78,90,91,73,80)一行数据一行数据访问二维数组元素 数组特性 scores.ndim#数组维数2 scores.size#数组元素总数,行列35 scores.shape#数组的行数和列数(5,7)scores.dtype#数组元素的类型dtype(int32)二维数组切片操作的基本格式:arr row,column row行序号,column列序号,中间用,隔开 行、列切片的表示方式与一维数组相同 用“:”代替行或列,表示选中对应的所有行或列二维数组切片 访问指定行、列的元素,给出行和列两个索引值 scores1,060 scores1,3,0,1array(60,82)sco

7、res1,3array(60,64,80,75,80,92,90,80,82,91,88,83,86,80)取某行所有列值,可以取某行所有列值,可以省略列省略列 :抽取抽取scores1,0,scores3,1scores1,0,scores3,1 scores:,0,1array(70,85,60,64,90,93,80,82,88,72)抽取部分列,行不能省略抽取部分列,行不能省略 scores 0,3,1:4 array(85,77,90 82,91,88,)scores1,3:,0,1array(60,64,80,82)抽取抽取1 1、3 3行中行中0 0、1 1列数据,两层切片列数据

8、,两层切片条件筛选 使用布尔型数组筛选访问其他数组其他数组的元素 scores(names=肖良英)|(names=方绮雯),:array(60,64,80,75,80,92,90,90,93,88,87,86,90,91)行筛选,行筛选,namesnames的长度的长度 和和 scoresscores的行数一致的行数一致 scores(names=肖良英)|(names=方绮雯):,(subjects=Math)|(subjects=Python)array(60,80,90,88)选择“肖良英”和“方绮雯”的“Math”和“Python”课程成绩,可以使用两层筛选实现第一层筛选后的所有行,

9、第一层筛选后的所有行,2 2行行思考与练习1.一维数组访问。在subjects数组中选择并显示序号1、2、4门课的名称,使用负值序号选择并显示names数组中 方绮雯。选择并显示names数组从2到最后的数组元素;选择并显示subjects数组2到4的数组元素。使用布尔条件选择并显示subjects数组中的英语和物理科目名称。2.二维数组访问。选择并显示scores数组的1、4行。选择并显示scores数组中行号2、4同学的数学和Python成绩。选择并显示scores数组中所有同学的数学和艺术课程成绩。选择并显示scores数组中“王微”和“刘旭阳”的英语和艺术课程成绩。3.生成由整数101

10、9组成的25的二维数组。创建多维数组的常用方法 arange()np.arange(0,11)array(0,1,2,3,4,5,6,7,8,9,10)np.arange(3,11,2)array(3,5,7,9)np.arange(0.3,1.5,0.3)array(0.3,0.6,0.9,1.2)reshape()将一维数组转换为指定的多维数组arangearange可以生成浮点数列可以生成浮点数列 np.arange(0,15).reshape(3,5)array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14)zeros()、ones()np.zeros(3,4)

11、array(0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.)np.ones(4,3)array(1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.)2.2 多维数组运算 基本算数运算 函数运算二维数组与标量运算 为所有同学的所有课程成绩增加5分。scores+5array(75,90,82,95,87,89,94,65,69,85,80,85,97,95,95,98,93,92,91,95,96,85,87,96,93,88,91,85,93,77,83,95,96,78,85)a=np.ones(5,7)*5 aarray(5.,5.,5.,5.,

12、5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.,5.)scores+aarray(75.,90.,82.,95.,87.,89.,94.,65.,69.,85.,80.,85.,97.,95.,95.,98.,93.,92.,91.,95.,96.,85.,87.,96.,93.,88.,91.,85.,93.,77.,83.,95.,96.,78.,85.)二维数组与一维数组运算 每个科目基础分不同,为各科目增加相应的基础分。bonus=np.array(3,4

13、,5,3,6,7,2)scores+bonusarray(73,89,82,93,88,91,91,63,68,85,78,86,99,92,93,97,93,90,92,97,93,83,86,96,91,89,93,82,91,76,83,93,97,80,82)修改选定数据 scoresnames=肖良英,subjects=English array(64)scoresnames=肖良英,subjects=English+5array(69)课后作业“大润发”、“沃尔玛”、“联华”和“农工商”四个超市都卖苹果、香蕉、桔子、猕猴桃和芒果5种水果。使用NumPy的ndarray实现以下功能。

14、a)创建2个一维数组分别存储超市名称和水果名称;b)创建1个45的二维数组存储不同超市的水果价格,其中价格由4到10范围内的随机数生成;c)选择“大润发”的苹果和“联华”的香蕉,并将价格增加1元;d)“农工商”水果大减价,所有水果价格减少2元;e)统计四个超市苹果和芒果的销售均价;f)找出桔子价格最贵的超市名称(不是序号)。打包提交名为:“学号-姓名-Data-1.zip”多维数组运算-通用函数 一元,1个输入数组,返回1个数组函数函数描述描述absabs、fabsfabs计算整数、浮点数或复数的绝对值sqrtsqrt计算各元素的平方根squaresquare计算各元素的平方expexp计算各

15、元素的指数loglog、log10log10自然对数、底数为10的logsignsign计算各元素的正负号ceilceil计算各元素的ceiling值,即大于等于该值的最小整数floorfloor计算各元素的floor值,即小于等于该值的最大整数coscos、coshcosh、sin sin sinhsinh、tantan、tanhtanh普通和双曲型三角函数通用函数-二元 2个输入数组,返回1个数组函数函数描述描述addadd将数据中对应的元素相加subtractsubtract从第一个数组中减去第二个数组中的元素multiplymultiply数组元素相乘dividedivide数组对应元

16、素相除powerpower对第一个数组中的元素A,根据第二个数组中的相应元素B,计算ABmodmod元素级的求模运算copysigncopysign将第二个数组中的值的符号复制给第一个数组中的值equal,not_equalequal,not_equal执行元素级的比较运算,产生布尔型数组通用函数-实例 将同学的考试成绩转换成整数形式的十分制分数 为每个同学的分数减去3分 np.floor(scores/10)array(7.,8.,7.,9.,8.,8.,8.,6.,6.,8.,7.,8.,9.,9.,9.,9.,8.,8.,8.,9.,9.,8.,8.,9.,8.,8.,8.,8.,8.,

17、7.,7.,9.,9.,7.,8.)np.subtract(scores,3)array(67,82,74,87,79,81,86,57,61,77,72,77,89,87,87,90,85,84,83,87,88,77,79,88,85,80,83,77,85,69,75,87,88,70,77)聚合函数 支持在行、列或者全体数组元素上的聚集函数函数函数描述描述sumsum求和meanmean算术平均值minmin、maxmax最大值和最小值argminargmin、argmaxargmax 最大值和最小值的索引cumsumcumsum从0开始向前累加各元素cumprodcumprod从1开

18、始向前累乘各元素 统计不同科目的成绩总分 scores.sum(axis=0)#按列求和array(388,396,414,430,422,425,430)求“王微”所有课程成绩的平均分 查询英语考试成绩最高同学的姓名 scoresnames=王微.mean()82.428571428571431 namesscores:,subjects=English.argmax()方绮雯随机数组生成函数 np.random模块函数函数描述描述randomrandom随机产生0,1)之间的浮点值randintrandint随机生成给定范围内的一组整数uniformuniform随机生成给定范围内服从均匀

19、分布的一组浮点数choicechoice在给定的序列内随机选择元素normalnormal随机生成一组服从给定均值和方差的正态分布随机数随机数组生成函数-实例 模块生成由10个随机整数组成的一维数组,整数的取值范围从0到5 randint(startstart,endend,sizesize)np.random.randint(0,6,10)array(5,5,0,2,4,3,1,2,5,4)生成服从均值为0、方差为1的服从正态分布正态分布的45二维数组 np.random.normal(0,1,size=(4,5)array(0.50293855,-0.65924346,1.10370417

20、,0.97295644,-0.94182097,-0.10743896,-0.62138498,-0.70710979,-0.31265519,-0.10357636,1.32282187,0.91143092,-1.1728774,0.51703585,-1.38091545,-2.02050138,-0.936194 ,1.47082363,1.73261098,-0.42447148)思考与练习1.将scores数组中所有同学的英语成绩减去3分并显示。2.统计scores数组中每名同学所有科目的平均分并显示。3.使用随机函数生成-1,1之间服从均匀分布的34二维数组,并计算所有元素的和。

21、案例:随机游走轨迹模拟 随机游走(Random Walk)又称随机游动或随机漫步 花粉的布朗运动、证券的涨跌 结合NumPy的随机数生成函数与ndarray实现 初始位置:(0,0)每一步随机地沿着x轴方向左移或右移一个单位,同时沿着y轴方向左移或右移一个单位 左移或者右移的概率是相等的1.模拟每步游走方向 创建一个2n的二维数组 2行分别表示x、y轴上的运动 n为移动总步数,每列记录一步 数组元素取值为-1或1 假设某次随机游走走了10步 用randint函数随机生成每步走的方向 steps=10 rndwlk=np.random.randint(0,2,size=(2,steps)rndw

22、lkarray(0,1,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,0,1,0)每次生成的方向不一样每次生成的方向不一样随机整数生成在随机整数生成在-1-1,0 0,1 1之之间有间有3 3个整数,如何跳掉个整数,如何跳掉0 0?rndwlk=np.where(rndwlk0,1,-1)rndwlkarray(-1,1,1,1,1,1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,1,-1)生成生成0101之间的整数随机数,之间的整数随机数,然后将然后将0 0转换为转换为-1-12.计算每步游走后的位置 第n步的位置为前n-1步位置+第n步 累加和函数cums

23、um()实现方法,第实现方法,第4 4章,数据可视化时介绍章,数据可视化时介绍 position=rndwlk.cumsum(axis=1)#逐列求累加和 positionarray(-1,0,1,2,3,4,5,4,3,4,-1,0,-1,0,-1,-2,-3,-4,-3,-4,dtype=int32)rndwlkarray(-1,1,1,1,1,1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,1,-1)3.计算每步游走后距原点距离 dists=np.sqrt(position0*2+position1*2)#sqrt求平方根 distsarray(1.41421356,

24、0.,1.41421356,2.,3.16227766,4.47213595,5.83095189,5.65685425,4.24264069,5.65685425)np.set_printoptions(precision=4)distsarray(1.4142,0.,1.4142,2.,3.1623,4.4721,5.8310,5.6569,4.2426,5.6569)dists.max()#游走最远距离6.3246 dists.min()#游走最远距离00 dists.mean()#游走平均距离3.3850(distsdists.mean().sum()#超出平均距离5浮点数小数位很多,可以设置显示位数浮点数小数位很多,可以设置显示位数设置后,一直有效设置后,一直有效思考与练习1.将随机游走的步数增加到100步,计算物体距离原点的距离。2.重复多次随机游走过程,物体距离原点距离的变化趋势是什么?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据科学技术与应用2多维数据与计算课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|