拉风的咖菲猫
这是在另一个问题最近。我会详细说明我的回答从那里:省略是一个可以片表示法出现的对象。例如:myList[1:2, ..., 0]它的解释完全取决于实现__getitem__函数与视点Ellipsis对象,但是它的主要(和预期的)用途在数值蟒蛇扩展,它添加了多维数组类型。由于有多个维度,切片变得比仅仅是一个开始和停止索引更复杂;能够在多维中切片也是很有用的。例如,给定一个4x4数组,左上角区域将由切片定义。[: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来表示未指定的其他数组维度的占位符。把它看作是指示整个切片[:]对于空隙中的所有尺寸,它被放置,所以对于一个三维数组,a[...,0]是相同的a[:,:,0]第四天,a[:,:,:,0],类似地,a[0,...,0]是a[0,:,:,0](然而,中间有许多冒号构成数组中的全部维数)。有趣的是,在python 3中,省略文字(...)在片语法之外是可用的,因此您实际上可以编写:>>> ...Ellipsis除了不同的数字类型,不,我不认为它是用的。据我所知,它纯粹是为numpy使用而添加的,除了提供对象和相应的语法之外,没有其他核心支持。在那里的对象不需要这个,但是字面上的“.”对切片的支持。