2012-06-19 11 views
11

I Algorithmus zur Berechnung der Differenz zwischen benachbarten Elementen in reinem Python habe:Numpy Differenz zwischen benachbarten Elementen

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 

Gibt es eine Möglichkeit, diese Funktionen mit Numpy neu zu schreiben?

Antwort

17

Es ist die diff Methode:

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

kehrt

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

Auch, wenn Sie nicht kennen 'np.diff' Sie, dass in' a vektorisieren könnte [1:] - a [: - 1] '. – ecatmur

+1

@ecatmur - guter Punkt. trotzdem funktioniert "diff" auch auf Python-Listen. 'a [1:] - a [: - 1]' nur auf dem nupy-Array. – eumiro

+0

Es gibt einen kleinen Unterschied in der Größe der Ergebnisse: in der Frage b genauso lang wie a. Nicht so ein großes Problem. –

Verwandte Themen