提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在python中会出现[-1]、[:-1]、[::-1]、[n::-1]、[:,:,0]、[…,0]、[…,::-1]等等操作
下面我们就对python中出现的上述一系列操作进行详细介绍
一、[-1]
原型[-n]:列表倒数第n项
例:
c=[1,2,3,4,5,6,7]
c[-1] #倒数第1项
Out: 7
c[-2] #倒数第2项
Out: 6
c[-3]
Out: 5
...
c[-7]
Out: 1 #倒数第7项,也就是第一项
二、[:-1]
原型[m:n]:m项可以取到,n项不可取到
c=[1,2,3,4,5,6,7]
c[0:6]
Out: [1, 2, 3, 4, 5, 6]
c[0:-1] #当n=0时可以省略,即c[:-1]
Out: [1, 2, 3, 4, 5, 6]
c[:-2] #从0到倒数第二项,且倒数第二项取不到
Out: [1, 2, 3, 4, 5]
c[2:5] #从第2项取到第五项,且第五项取不到
Out: [3, 4, 5]
c[1:2]
Out: [2]
三、[::-1]
代码如下(示例): 原型[n:m:k]:n代表的是取值开始的索引,因此该索引必将被取到,m代表的是取值结束的索引,和上面一样,该值不能被取到。k代表的是间隔,间隔可正可负,正值代表正向顺序跳取,负值代表反向跳取。 需要注意的是,当k为正的时候起始索引应该小于结束索引;当k为负的时候起始索引应该大于结束索引,因为在倒序来看,首先是索引值大的被取到,然后才是索引值小的
c=[1,2,3,4,5,6,7]
c[2:5:1]
Out: [3, 4, 5]
c[5:2:-1]
Out: [6, 5, 4]
c[2::1] #不填默认是从第2项到最后一项
Out: [3, 4, 5, 6, 7]
c[::1] #不填由于后面是+1,所以默认是从头到尾
Out: [1, 2, 3, 4, 5, 6, 7]
c[4::-1] #不填默认是从第4项到头
Out: [5, 4, 3, 2, 1]
c[::-1] #不填由于后面是-1,所以默认是从尾到头
Out: [7, 6, 5, 4, 3, 2, 1]
#默认值是随着后面k的正负来变化的
四、[:,:,0]
多了个逗号,这个方法就和前面的有所不同了。它是对多维数据的一种处理方式,代表了前两维全选,取其中的所有0号索引。 原型是[n:m, j:k, g:h],当然维度可以更多,在图片处理中,一般用到的就是三维的。看a数组的模样就可以看出来,nm管最外层列表的取值,从第n个元素到第m个元素,前闭后开;jk管nm取中的元素的列表中的元素的选取,也是前闭后开,gh管jk取中元素的列表中的元素的选取,任意一对都可以是个整数用来直接取某个索引,这和前两个很像。
五、[…,0]
代表了取最里边一层的所有第0号元素,…代表了对:,:,:,的省略。注意只能进行一次省略,不能是[… , …],全省略那不就是 a 吗。
a = np.array( [[[1,2,3],[4,5,6],[7,8,9]],
[[10,11,12],[13,14,15],[16,17,18]],
[[19,20,21],[22,23,24],[25,26,27]]])
#3*3*3的数组
a.[...,0]
Out: array([[ 1, 4, 7],
[10, 13, 16],
[19, 22, 25]])
a[:,0,:]
Out: array([[ 1, 2, 3],
[10, 11, 12],
[19, 20, 21]])
a[0,...]
Out: array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
[…,::-1],代表把最里面一层的值倒转过来
a = np.array( [[[1,2,3],[4,5,6],[7,8,9]],
[[10,11,12],[13,14,15],[16,17,18]],
[[19,20,21],[22,23,24],[25,26,27]]])
a[...,::-1]
Out: array([[[ 3, 2, 1],
[ 6, 5, 4],
[ 9, 8, 7]],
[[12, 11, 10],
[15, 14, 13],
[18, 17, 16]],
[[21, 20, 19],
[24, 23, 22],
[27, 26, 25]]])
|