切片器对象(例如,
SliceMaker来自其他问题或
np.s_)可以接受多个逗号分隔的切片;它们被接收为
tuple的
sliceS或其它目的:
from numpy import s_s_[0, 3:5, 6::3]Out[1]: (0, slice(3, 5, None), slice(6, None, 3))
NumPy将此用于多维数组,但是您可以将其用于切片连接:
def xslice(arr, slices): if isinstance(slices, tuple): return sum((arr[s] if isinstance(s, slice) else [arr[s]] for s in slices), []) elif isinstance(slices, slice): return arr[slices] else: return [arr[slices]]xslice(list(range(10)), s_[0, 3:5, 6::3])Out[1]: [0, 3, 4, 6, 9]xslice(list(range(10)), s_[1])Out[2]: [1]xslice(list(range(10)), s_[:])Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]



