2016-12-15 43 views
0

我想获得切片一些np.ndarray对象foo切片索引或结束,如果结束较小那么指数(蟒蛇)

bar = foo[:end] 

但有时最终会比len(foo)更大。然后我想获得bar = foo。我可以达到这个,如果我写bar = foo[:min(end, len(foo)]。但它似乎不pythonic。有没有简单的方法来做到这一点?

+3

如果'foo'是一个长度小于'end'的Python列表,那么'foo [:end]'返回'foo'的一个副本。 'np.ndarray'对象不这样做吗?他们以这种方式切片时会展现什么行为? – TigerhawkT3

+0

我同意@CoryKramer在这里。它简短明了。 – MrLeeh

+0

是不是默认行为时'end'是大于长度? – Holloway

回答

2

你其实并不需要任何特殊的逻辑来处理的范围内切出。默认情况下,如果end过大,切片将包括数组的结尾。

>>> a = np.array([1,2,3]) 
>>> a 
array([1, 2, 3]) 
>>> a = a[:10] 
>>> a 
array([1, 2, 3])