2012-06-19 15 views
11

tengo algoritmo de cálculo de la diferencia entre elementos vecinos en Python puro:diferencia Numpy entre elementos vecinos

a = range(1000000) #it's numpy array in my case 
    prev = a[0] 
    b = [0, ] 
    for i in a[1:]: 
     b.append(i - prev) 
     prev = i 

¿Hay alguna manera de volver a escribir esto funciona con Numpy?

Respuesta

17

No es el método diff:

a = range(5) # python list of numpy array 
np.diff(a) 

vuelve

array([1, 1, 1, 1]) 
+5

Además, si usted no sabe acerca de 'np.diff' usted podría Vectorise que en un' [1:] - a [: - 1] '. – ecatmur

+1

@ecatmur - buen punto. de todos modos, 'diff' también funciona en las listas de Python. 'a [1:] - a [: - 1]' en matriz numpy solamente. – eumiro

+0

Hay una ligera diferencia en el tamaño de los resultados: en la pregunta b tiene la misma longitud que a. Aunque no es un gran problema. –