Numpy:arr [...,0,:]有效.但是如何存储slice命令(...,0,:)中包含的数据?

Chi*_*nex 5 python indexing numpy slice

在Numpy(和Python一般来说,我想),如何存储切片索引,例如(...,0,:),以便传递它并将其应用于各种数组?比方说,能够将切片索引传递给函数和从函数传递是很好的.

Tho*_*ers 9

Python使用切片语法创建特殊对象,但仅在方括号内部进行索引.您可以手动创建这些对象(在这种情况下,(...,0,:)(Ellipsis, 0, slice(None, None, None)),或者您可以创建一个小帮助对象:

class ExtendedSliceMaker(object):
    def __getitem__(self, idx):
        return idx

>>> ExtendedSliceMaker()[...,0,:]
(Ellipsis, 0, slice(None, None, None))
Run Code Online (Sandbox Code Playgroud)


HYR*_*YRY 5

在NumPy中使用s_:

In [1]: np.s_[...,0,:]
Out[1]: (Ellipsis, 0, slice(None, None, None))
Run Code Online (Sandbox Code Playgroud)