Numpy.array中[:]和[::]的區別
阿新 • • 發佈:2018-11-13
[:]和[::]的區別蠻大的,用的好可以節省時間,下面以例項進行分析
array([:])
>>> import numpy as np >>> >>> x=np.array([1,2,3,4,5,6,7,8,9,10,11,12]) >>> print(x[1:5])#列印index為1~5的陣列,範圍是左閉右開 [2 3 4 5] >>> print(x[3:])#列印index=3之後的陣列,包含index=3 [ 4 5 6 7 8 9 10 11 12] >>> print(x[:9])#列印index=9之前的陣列,不包含index=9 [1 2 3 4 5 6 7 8 9] >>> print(x[1:-2])#列印index=1到倒數第2個index之間的陣列 [ 2 3 4 5 6 7 8 9 10] >>> print(x[-9:-2])#列印倒數第9個index和倒數第2個index之間的陣列,左開右閉 [ 4 5 6 7 8 9 10]
array([::])
>>> print(x[1::3])#以index=1為起始位置,間隔3 [ 2 5 8 11] >>> print(x[::3])#預設從index=0開始,間隔3 [ 1 4 7 10] >>> print(x[3::])#和[3:]一樣 [ 4 5 6 7 8 9 10 11 12] >>> print(x[::-1])#反向列印資料,從最後一個index開始,間隔為1 [12 11 10 9 8 7 6 5 4 3 2 1] >>> print(x[::-3])#反向列印資料,從最後一個index開始,間隔為3 [12 9 6 3] >>> print(x[7:2:-1])#反向列印index=2(不包含)到index=7之間的資料 [8 7 6 5 4]
也是碰到這方面的問題,沒搞明白,乾脆試了試就清楚了,應該[:]和[::]還有很多有趣的地方,歡迎留言補充