1. 程式人生 > >Numpy.array中[:]和[::]的區別

Numpy.array中[:]和[::]的區別

[:]和[::]的區別蠻大的,用的好可以節省時間,下面以例項進行分析

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]

也是碰到這方面的問題,沒搞明白,乾脆試了試就清楚了,應該[:]和[::]還有很多有趣的地方,歡迎留言補充