Python的切片

https://www.jianshu.com/p/15715d6f4dad

    a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    b=a[1:6:-1]   #-1代表从右往左取值,最终取出来的b是个空的[]
    print(b)

    a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    b=a[1:6:1]   #1代表从左往右取值,最终取出来的b是[1, 2, 3, 4, 5]
    print(b)

    a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    b=a[1:6:2]   #2代表从右往左取值,步长是2,最终取出来的b是[1, 3, 5]
    print(b)

这时对一维的列表操作,

试一下二维的列表可不可以。【其实对二维数组也是有效的】

    a=np.random.randint(0,10,size=[6,3])
    print("a")
    print(a)
    b=a[1:6:1]
    print("b")
    print(b)

输出结果:

a
[[7 7 9]
 [9 5 9]
 [6 3 6]
 [3 2 2]
 [6 9 2]
 [0 5 0]]
b
[[9 5 9]
 [6 3 6]
 [3 2 2]
 [6 9 2]
 [0 5 0]]

下面是取出二维数组a的奇数行,并重新组建一个二维数组b:

    a=np.random.randint(0,10,size=[6,3])
    print("a")
    print(a)
    b=a[1:-1:2]
    print("b")
    print(b)

运行结果:

a
[[6 9 9]
 [5 9 3]
 [5 3 6]
 [4 2 1]
 [1 5 5]
 [9 4 2]]
b
[[5 9 3]
 [4 2 1]]   #这里丢失了最后一行,所以该程序为:

    a=np.random.randint(0,10,size=[6,3])
    print("a")
    print(a)
    b=a[1::2]
    print("b")
    print(b)

输出结果为:

a
[[6 5 9]
 [3 7 2]
 [3 7 4]
 [2 2 2]
 [8 0 0]
 [6 9 9]]
b
[[3 7 2]
 [2 2 2]
 [6 9 9]]

可以完美解决问题。

原文地址:https://www.cnblogs.com/chulin/p/10062655.html