這是在另一個問題最近。我會詳細說明我的回答從那里:
省略是一個可以片表示法出現(xiàn)的對象。例如:
myList[1:2, ..., 0]
它的解釋完全取決于實現(xiàn)__getitem__
函數(shù)與視點Ellipsis
對象,但是它的主要(和預(yù)期的)用途在數(shù)值蟒蛇擴展,它添加了多維數(shù)組類型。由于有多個維度,切片變得比僅僅是一個開始和停止索引更復(fù)雜;能夠在多維中切片也是很有用的。例如,給定一個4x4數(shù)組,左上角區(qū)域?qū)⒂汕衅x。[:2,:2]
:
>>> a
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])>>> a[:2,:2] # top leftarray([[1, 2],
[5, 6]])
進一步擴展這一點,在這里使用Ellipsis來表示未指定的其他數(shù)組維度的占位符。把它看作是指示整個切片[:]
對于空隙中的所有尺寸,它被放置,所以對于一個三維數(shù)組,a[...,0]
是相同的a[:,:,0]
第四天,a[:,:,:,0]
,類似地,a[0,...,0]
是a[0,:,:,0]
(然而,中間有許多冒號構(gòu)成數(shù)組中的全部維數(shù))。
有趣的是,在python 3中,省略文字(...
)在片語法之外是可用的,因此您實際上可以編寫:
>>> ...Ellipsis
除了不同的數(shù)字類型,不,我不認為它是用的。據(jù)我所知,它純粹是為numpy使用而添加的,除了提供對象和相應(yīng)的語法之外,沒有其他核心支持。在那里的對象不需要這個,但是字面上的“.”對切片的支持。