前言:
当前同学们对“python切片读取”大概比较关怀,姐妹们都需要学习一些“python切片读取”的相关知识。那么小编同时在网络上收集了一些有关“python切片读取””的相关资讯,希望小伙伴们能喜欢,姐妹们快快来了解一下吧!专栏推荐切片
一维数组的索引和切片
我们通过一些例子来帮助我们理解数组中的切片操作。
g[3:7]表示获取数组中的索引下标3到6
g[:7:2]= g[0:7:2]表示获取数组中的索引0到6的,然后以2为步长选取元素
g[::-1] 利用负数下标翻转数组
8. 多维数组的切片和索引
这里我们先创建了一个一维数组,然后使用reshape函数将一维数组的改为三维数组,维度为(2,3,4),2,3,4的对应关系如上所示。这里要注意一点的是g.reshape方法返回更改维度的数组,但是它没有修改数组本身,我们可以reshape之后的数组将其赋值给一个变量,这样我们才可以看到reshape之后的数组,本例就是reshape之后将其赋值给了g,然后g就是(2,3,4)的数组了。
reshape之后没有赋值的:
reshape之后赋值的:
现在我们对g数组进行切片操作:
现在我们逐一对上面的切片操作进行解析,我们先来看一下我们切片的数组:
切片是按照维度来逐一切片的,本例中我们的数组的维度是(2,3,4),我们切片的时候,是先切第一维(2),再切第二维(3),最后切第三维(4),这是有顺序的。
切片的时候:表示所有,表示所在维度的所有。
不同维度之间切片用逗号隔开,比如a[0,0,0]逗号隔开了第一个维度我们要0,第二个维度我们还要0,第三个维度我们还是要0,所以最终a[0,0,0]为0:
解析4:g[0,:,:]表示第一维度切0,第二个维度全切了(全要了),第三个维度也全要了,当多个冒号可以用一个省略号(...)来代替,因此上面的代码等价于g[0,…]。
解析7: g[0,1,::2]表示第一维度切0,第二维度切1,第三维度所有并且以2为步长(::2这种组合要注意)。
解析8:…表示多个冒号,所以8我们也可以写为g[:,:,1]
解析11:第一维切0,也就是
第二维切:,表示所有,也就是
第三维-1表示倒着数第一,也就是
那么最终结果为
解析12:g[0,::-1,-1],这个第一维度切0,此时为
第二维度为反转(::-1的作用就是反转),此时为
第三维-1,表示倒着数第一
所以最终的结果就是array([11, 7, 3])
解析13:g[0,::2,-1]
第一维切0,此时为
第二维的操作是步长为2的获取,此时为:
第三维为倒数第一
解析14:g[::-1],这个表示第一维执行反转操作,第二维和第三维的操作并没有写,也就是没有操作,没有操作那么就是获取所有的意思。
9. 改变数组的维度
ravel表示将数组展平
我们可以看出来ravel将数组展平,它会返回一个展平的数组,单并没有修改数组本身,这个和reshape是一样的。
flatten函数也有展平数组的作用
reshape()函数可以修改矩阵的维度,单并没有修改矩阵本身
resize和reshape一样可以修改数组的维度,但是resize可以修改数组本身
和resize类似我们可以使用shape来改变矩阵的维度:
使用shape要注意两点,第一点=,第二点传递一个元组()
可以使用transpose完成矩阵的转置:
总之我们记住两点,只有resize和shape(元组)是对数组本身修改
标签: #python切片读取