Copying will always mean allocating new memory, but in this case it ends up saving memory in the long run. If you make a matrix with 1,000,000 elements, say:
```
x = np.zeros((1000000))
y = x[::1000]
del x
```
Then you haven't actually cleared x from memory, since `y` is still pointing to `x`'s memory space, and Python knows that. However, if you do `y = x[::1000].copy()`, then the memory space allocated by `x` can subsequently be freed, since the only thing pointing to it is `x`. Make sense?