2016-12-15 44 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])