我想说在学numpy库的时候切片真的让我有点痛苦的,逗号分号括号数字交织在一起刚开始看的我简直脑袋要爆炸,不过后来静下心来仔细看了看,发现其实也米有这么复杂,毕竟基于python的numpy库也是遵循着特定的语法的。今天就来聊聊这个numpy库的切片规则吧,希望能帮到和曾经的我一样痛苦的你,另外这里备注一下我主要是拿二维数组来举例,因为二维数组在numpy中的应用是最广的~
首先我们先来建一个numpy数组:
import numpy as np
a=np.random.randint(10,size=(4,6))
print(a)###系统返回的结果:
[[5 9 8 6 0 9][3 1 9 6 7 4][3 3 6 5 8 9][9 2 9 0 1 1]]
接下来我会将所有常用的切片方法列出
print(a[0]) #取第一行的值
[5 9 8 6 0 9]print(a[:,0]) #取第一列的值
[5 3 3 9]print(a[1:3]) #取第二行到第三行的值
[[3 1 9 6 7 4][3 3 6 5 8 9]]print(a[[0,2,3]]) #取第一,三,四行的值
[[5 9 8 6 0 9][3 3 6 5 8 9][9 2 9 0 1 1]]print(a[1,3]) #取第二行滴四列的值
6print(a[(1,3),(4,2)])
print(a[[1,3],[4,2]]) #取第二行第五列和滴四行第三列的值
[7 9]print(a2[1:3,4:6]) #取第二行到第三行的第五列到第六列的值
[[7 4][8 9]]print(a[0:4,[1,3]]) #取第一行到第三行的第二列和第四列的值
[[9 6][1 6][3 5][2 0]]
基本上有两个规则,“:”冒号代表连续,“,”逗号代表隔开,前者只能在行索引或者列索引内部使用,而后者用来连接行索引和列索引,且也可以在行索引或者列索引内部使用,比如最后一个例子的隔行或者列来切片[0:4,[1,3]],若有不足欢迎吐槽,下课~