切片到索引或结尾,如果结尾小于索引 (python)
Slice to index or end, if end is lesser then index (python)
我想获取一些 np.ndarray
对象的切片 foo
:
bar = foo[:end]
但有时 end 可以大于 len(foo)
。然后我想得到bar = foo
。如果我写 bar = foo[:min(end, len(foo)]
,我可以做到这一点。但它似乎不是pythonic。有更简单的方法吗?
您实际上不需要任何特殊逻辑来处理超出范围的切片。默认情况下,如果 end
太大,切片将包括数组的末尾。
>>> a = np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> a = a[:10]
>>> a
array([1, 2, 3])
我想获取一些 np.ndarray
对象的切片 foo
:
bar = foo[:end]
但有时 end 可以大于 len(foo)
。然后我想得到bar = foo
。如果我写 bar = foo[:min(end, len(foo)]
,我可以做到这一点。但它似乎不是pythonic。有更简单的方法吗?
您实际上不需要任何特殊逻辑来处理超出范围的切片。默认情况下,如果 end
太大,切片将包括数组的末尾。
>>> a = np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> a = a[:10]
>>> a
array([1, 2, 3])