美文网首页
2018-10-29 切片进阶 B

2018-10-29 切片进阶 B

作者: 杜若飞er | 来源:发表于2018-10-29 20:35 被阅读4次

    今天继续写切片。

    省略(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 汇集并改变;


    相关文章

      网友评论

          本文标题:2018-10-29 切片进阶 B

          本文链接:https://www.haomeiwen.com/subject/ijeitqtx.html