Desplazar todos los índices en matriz NumPy

Tengo una matriz numpy como esta:

x=np.array([0,1,2,3,4]) 

y desea crear una matriz donde el valor en el índice 0 está en el índice 1, el índice 1 está en el índice 2, etc.

La salida que quiero es:

 y=np.array([0,0,1,2,3]). 

Supongo que hay una forma fácil de hacer esto sin iterar a través de la matriz completa. ¿Cómo puedo hacer esto de forma numérica?

Puedes usar

 y = numpy.roll(x, 1) y[0] = 0 

o

 y = numpy.r_[0, x[:-1]] 

Si quisiera hacer esto en el lugar, también podría hacer:

 x[1:] = x[:-1] x[0] = 0