[m:n] #切片操作,取a[m]~a[n-1]之间的内容,m\n可以为负,m>n时返回空
[m::n] #从a[m]开始,每跳|n|个取一个,当n为负时逆序取数,当n为正的时候,m为空则默认m=0,n为负时,m为空则默认为-1
In [1]: import numpy as np
In [2]: a = np.random.rand(10)
In [3]: a
Out[3]:
array([0.56206001, 0.93252115, 0.24078108, 0.36059548, 0.1946579 ,
0.35166964, 0.77443621, 0.97699886, 0.30177723, 0.10688389])
In [4]: a[3:2] # m>n返回空
Out[4]: array([], dtype=float64)
In [5]: a[::-1] # 从a[-1]开始逆序取数,间隔为1,即逆序所有
Out[5]:
array([0.10688389, 0.30177723, 0.97699886, 0.77443621, 0.35166964,
0.1946579 , 0.36059548, 0.24078108, 0.93252115, 0.56206001])
In [6]: a[3::-1] # 从a[3]开始逆序取数,间隔为1
Out[6]: array([0.36059548, 0.24078108, 0.93252115, 0.56206001])
In [7]: a[8::-2] # 从a[8]开始逆序取数,间隔为2
Out[7]: array([0.30177723, 0.77443621, 0.1946579 , 0.24078108, 0.56206001])
In [8]: a[8::-3] # 从a[8]开始逆序取数,间隔为3
Out[8]: array([0.30177723, 0.35166964, 0.24078108])
In [9]: a[3::1] # 从a[3]开始正序取数,间隔为1
Out[9]:
array([0.36059548, 0.1946579 , 0.35166964, 0.77443621, 0.97699886,
0.30177723, 0.10688389])
In [10]: a[3::2] # 从a[3]开始正序取数,间隔为2
Out[10]: array([0.36059548, 0.35166964, 0.97699886, 0.10688389])
In [11]: a[3::3] # 从a[3]开始正序取数,间隔为3
Out[11]: array([0.36059548, 0.77443621, 0.10688389])
In [12]: a[::2]
Out[12]: array([0.56206001, 0.24078108, 0.1946579 , 0.77443621, 0.30177723])
In [13]: a[::-2]
Out[13]: array([0.10688389, 0.97699886, 0.35166964, 0.36059548, 0.93252115])