1.冒號的用法
1.1 一個冒號
a[i:j]
這里的i指起始位置,默認為0;j是終止位置,默認為len(a),在取出數組中的值時就會從數組下標i(包括)一直取到下標j(不包括j)
在一個冒號的情況下若出現負數則代表倒數某個位置
a[i:-j]
這里就是從下標i取到倒數第j個下標之前(不包括倒數第j個下標位置的元素)
1.2 兩個冒號
a[i:j:h]
這里的i,j還是起始位置和終止位置,h是步長,默認為1
若i/j位置上出現負數依然倒數第i/j個下標的位置,h若為負數則是逆序輸出,這時要求起始位置下標大於終止位置
在兩個冒號的情況下若h為正數,則i默認為0,j默認為len(a);
若h為負數,則i默認為-1(即最后一個位置),j默認為-len(a)-1(下標0的前一個位置,這樣就能輸出到下標0了)
2.舉例說明
ok,接下來就對冒號更多靈活的用法舉例說明
a='python' b=a[:] print(b) >>python #一個冒號代表默認全選
a='python' b=a[1:4:] print(b) >>yth #冒號后沒有寫明故代表默認步長為1
a='python' b=a[:-1] print(b) >>pytho #-1代表倒數第一個位置,因為:前面的初始位置沒有指定,默認為0,就從下標0一直取到最后一個位置之前
a='python' c=a[1:-2] print(c) >>yth #-2代表倒數第二個位置,即從下標1取到倒數第二個位置之前
a='python' b=a[::-1] print(b) >>nohtyp #前兩個冒號和上面一致,就是確定起始位置和終止位置 #第三個參數-1是指步長為-1,也就是逆序輸出 #這里a[::-1]相當於 a[-1:-len(a)-1:-1],也就是從最后一個元素到第一個元素
#所以[::-1]經常用來對一個數組進行逆序輸出
a='python' b=a[1:4:-1] print(b) >> #這里什么也沒有輸出,因為按照給定的步長是無法從下標1走到4的,所以輸出為空但不會報錯
a='python' b=a[-2:-7:-2] print(b) >>otp #這里起始位置是-2,終點是-7(不包括,所以輸出到-6位置),步長為-2
a = np.array([[1,2,3],[4,5,6],[7,8,9],[11,12,13]]) print(a[::-1,2:0:-1]) >>[[13 12] [ 9 8] [ 6 5] [ 3 2]] #對於多維數組也是一樣的,可以分別對每一維進行操作,中間用逗號分隔
最后再看一個圖片舉例