2011-05-02 19 views
8

tengo una matriz numpy como esto:Shift todos los índices en array NumPy

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

y desea crear una matriz en donde el valor en el índice 0 se encuentra en el índice 1, índice 1 es en el índice 2, etc.

la salida que quiero es:

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

supongo que hay una manera fácil de hacer esto sin iteración a través de toda la gama. ¿Cómo puedo hacer esto de una manera numotónica?

Respuesta

14

Puede utilizar

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

o

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

NumPy Sven al rescate. ¡Gracias! – Idr

0

Si quería hacer esto en contexto, también se puede hacer:

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