2012-06-19 15 views
11

mam algorytm obliczania różnicy pomiędzy sąsiadującymi elementami w czystym Pythonie:różnica Numpy między elementami sąsiednimi

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 

Czy istnieje jakiś sposób, aby przepisać to funkcje z numpy?

Odpowiedz

17

Istnieje metoda diff:

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

powraca

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

Ponadto, jeśli nie wiedzieli o 'np.diff' można vectorise że w' a [1:] - a [: - 1] '. – ecatmur

+1

@ecatmur - dobry punkt. w każdym razie 'diff' działa również na listach Pythona. 'a [1:] - a [: - 1]' tylko na tablicy numpy. – eumiro

+0

Istnieje niewielka różnica w rozmiarze wyników: w pytaniu b jest taka sama jak długość. Nie jest to jednak duży problem. –

Powiązane problemy