Na czym to polega w sklepie
Funkcja np.diff zwraca tablicę różnic między sąsiednimi elementami. W szeregach czasowych to dzienna zmiana metryki - szybciej niż pętla po datach. Pierwszy dzień nie ma poprzednika, więc wynik ma o 1 element mniej niż wejście.
Przykład ze sklepu internetowego
Dzienny przychód sklepu z ostatniego tygodnia. Chcesz zobaczyć dzień do dnia, o ile PLN zmienił się revenue po starcie kampanii Meta:
import numpy as np
dates = np.arange(7) # indeksy dni
daily_revenue = np.array([12000, 13500, 14200, 9800, 15600, 16800, 17200])
daily_change = np.diff(daily_revenue)
# [1500, 700, -4400, 5800, 1200, 400] - spadek w dniu 4 do audytu
pct_change = np.diff(daily_revenue) / daily_revenue[:-1] * 100
Co zrobić po stronie biznesu
- Δ spend dzień do dnia - alert gdy wzrost > 30% bez zgody media buyera.
- Różnica skumulowanego revenue kampanii vs plan w połowie miesiąca.
- Pułapka:
diffna danych niesortowanych po dacie da śmieci - najpierw ułóż szereg chronologicznie.
W skrócie
np.diff to wektorowa zmiana dzienna. Do procentowej zmiany podziel przez arr[:-1]. Brakuje jednego elementu - dopasuj oś dat w wykresie.