0
我想获得切片一些np.ndarray
对象foo
:切片索引或结束,如果结束较小那么指数(蟒蛇)
bar = foo[:end]
但有时最终会比len(foo)
更大。然后我想获得bar = foo
。我可以达到这个,如果我写bar = foo[:min(end, len(foo)]
。但它似乎不pythonic。有没有简单的方法来做到这一点?
我想获得切片一些np.ndarray
对象foo
:切片索引或结束,如果结束较小那么指数(蟒蛇)
bar = foo[: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])
如果'foo'是一个长度小于'end'的Python列表,那么'foo [:end]'返回'foo'的一个副本。 'np.ndarray'对象不这样做吗?他们以这种方式切片时会展现什么行为? – TigerhawkT3
我同意@CoryKramer在这里。它简短明了。 – MrLeeh
是不是默认行为时'end'是大于长度? – Holloway