语法[:, :2, :, :540]
被转换成一个元组slice
Python 的对象:
(slice(None, None, None),
slice(None, 2, None),
slice(None, None, None),
slice(None, 540, None))
生成此元组的一种便捷方法是使用特殊函数*np.s_ http://docs.scipy.org/doc/numpy/reference/generated/numpy.s_.html。你只需要把它传递给[...]
表达。例如:
>>> np.s_[:540]
slice(None, 540, None)
>>> np.s_[:, :2, :, :540]
(slice(None, None, None),
slice(None, 2, None),
slice(None, None, None),
slice(None, 540, None))
那么你的切片字典可以写成:
lookup = {0: np.s_[:540],
30: np.s_[540:1080],
60: np.s_[1080:]}
* 技术上s_
是类的别名IndexExpression https://github.com/numpy/numpy/blob/master/numpy/lib/index_tricks.py#l603实现了一个特殊的__getitem__
method.