Przejdź do treści

Numpy. Funkcja np.diff(). Dzienne zmiany sesji i przychodu w szeregu czasowym GA4.

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: diff na 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.