- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
NumPy常用操作实验七
课程学习目标了解NumPy的创建、索引及广播机制
数组元素操作在Python中,最基本的数据结构是序列,它包含六种内建序列,即字符串、列表、元组、Unicode字符串、buffer对象、xrange对象。序列中的每个元素都要有一个唯一的编号作为他们的“标识”,这个编号被称为索引,在使用时,可以通过索引取到序列的值,语法为序列[索引],这里需要注意的是序列中的索引是从0开始编号的。切片(slicing)是一种从数组中提取元素子集的方式,其语法类似于Python列表的切片。所以有一个概念为切片(slice),顾名思义,就是“切下来一个连续的片区”,切片是对序列的一种高级索引方法,和前面讲到的普通索引的区别在于普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围中对应的元素。
数组元素操作普通索引
数组元素操作切片索引
切片索引切片是通过内置的slice函数,并设置start,stop及step参数进行,从原数组中切割出一个新数组,本质上是通过切片来实现索引。新生成索引数组切片例7.1通过slice函数进行切片。importnumpyasnpa=np.array([1,3,5,7,9,11,13,15,17,18,19])s=slice(2,8,2)print(a[s])slice(2,8,2)的含义是从2开始,到7,步长为2因而也就得到2,4,6,通过slice得到需要的下标索引,进而通过索引得到对应的元素。因为序列中的索引是从0开始编号的,所以在变量a中,索引为2的元素是5,索引为4的元素是9,索引为6的元素是13。
切片索引序列[start:end:step]直接在原数组上通过索引切片例7.2通过冒号对数组进行切片。importnumpyasnpa=np.array([1,3,5,7,9,11,13,15,17,18,19])b=a[2:8:2]print(b)a[2:8:2]的含义为从2开始,到7,步长为2因而也就得到2,4,6,在变量a中,索引为2的元素是5,索引为4的元素是9,索引为6的元素是13。使用这种方法表达时,冒号里面的某些参数可以省略,具体省略规则如下。如果只放置一个参数,如[2],将返回与该索引相对应的单个元素;如果只放置一个参数加冒号,如[2:],表示从该索引开始以后,默认步长1,即该项以后的所有项都将被提取,同样如果冒号在前,如[:6],表示从该索引开始往前,默认步长为1,即该项前端所有项都将被提取;如果使用了两个参数,如[2:6],则提取两个索引之间的项。上述表示的是一维数组的切片,那么在二维数组上是否也同样适用呢?
切片索引例7.3通过冒号对数组进行切片。importnumpyasnpa=np.array([[1,2,3],[3,4,5],[4,5,6]])print(a)#从某个索引处开始切割print(从数组索引a[1:]处开始切割)print(a[1:])在多维数组中,冒号切片同样适用,例子中的[1:]表示数组[1,2,3]整体的后面的所有数据。直接在原数组上通过索引切片
切片索引例7.4通过冒号对数组进行切片。importnumpyasnpa=np.array([[1,2,3],[3,4,5],[4,5,6]])print(第2列元素)print(a[...,1])#第2列元素print(第2行元素)print(a[1,...])#第2行元素print(第2列及右边的所有元素)print(a[...,1:])#第2列及右边的所有元素通过这几个例子,可以总结出使用省略号的场景:多维数组切片可以通过省略号来进行,省略号意味着所有的意思,通过这种操作可以获得列。以二维数组为例,索引的第一个数字代表行,第二个数字代表列,则[...,1]中,行索引由...代替,即所有行的意思,列数为1,即第二列,所以这个的意思代表第2列的所有元素。直接在原数组上通过索引切片
高级索引例7.5使用整型数组索引。整型数组索引索引一般包含两个列表,第一个列表代表行,第二个列表代表列,一一对应。importnumpyasnpx=np.array([[1,2],[3,4],[5,6]])y=x[[0,1,2],[0,1,0]]print(x)print(y)在x中,[0,0]位置的元素为1,[1,1]位置的元素为4,[2,0]位置的元素为5,与程序执行结果相对应。
高级索引例7.6使用布尔索引。importnumpyasnpx=np.
原创力文档


文档评论(0)