You can use numpy's slicing, simply start:stop:step.
This creates a view of the the original data, so it's constant time. It'll also reflect changes to the original array and keep the whole original array in memory:
so if either of the above things are a problem, you can make a copy explicitly:
This isn't constant time, but the result isn't tied to the original array. The copy also contiguous in memory, which can make some operations on it faster.