今天继续写切片。
省略(ellipsis)
!!!很重要的一点,省略的写法是三个英文句号...
而不是半个省略号…
,事实上,MacOS上也打不出英文省略号来(或者说英文里根本没有省略号?这个问题本菜鸡还真没有考虑过,过两天问问英文大佬)。
在Numpy中,省略作为切片的一种快捷方式,具体用法如下:x[i...]
和x[i, :, :, :]
是完全等价的,在多维矩阵中作为常用的写法。
同时要注意的是,Python的标准库——就是不用import就能运行的所用东西里,好像都不支持省略,所以大部分用处还是跟昨儿写的东西一样在Numpy里。
切片赋值
如果把切片放在赋值语句的左边,也就是作为赋值对象使用时,或把它作为del操作的对象时,就可以对序列进行一些非常方便的操作,包括嫁接、切除或者修改,话不多说直接看例子:
1 lis = list(range(10))
2 lis [2:5] = [20, 30]
3 del lis [5:7]
4 lis [3::2] = [11, 22]
5 lis [2:5] = [100]
假设每一行后面都有一个小小的print:
1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2 [0, 1, 20, 30, 5, 6, 7, 8, 9]
3 [0, 1, 20, 30, 5, 8, 9]
4 [0, 1, 20, 11, 5, 22, 9]
5 [0, 1, 100, 22, 9]
小小介绍一下:
1 建立了一个list,范围是0~9;
2 把切出来的第三四个元素改变;
3 去掉Lis的第六七个元素;
4 有开始和步长的元素改变;
5 汇集并改变;
网友评论