Om een reeks van getallen met veel fluctuatie grafisch voor te stellen, wordt er vaak een smoother gebruikt. Neem bijvoorbeeld het aantal COVID-19 gevallen per dag, deze cijfers fluctueren van dag tot dag. Om algemene trends te visualiseren wordt er daarom vaak gewerkt met het weekgemiddelde. Elk getal in de reeks wordt dan vervangen door het gemiddelde van dat getal en de 6 voorgaande getallen. Op die manier bekomen we een nieuwe reeks met veel minder fluctuatie, waarbij de algemene trends duidelijk zijn. We noemen dit ook een smoother met een window van 7. Uiteraard zijn ook andere windows dan 7 mogelijk

Stel, we willen onderstaande reeks smoothen met een window van 2.

1, 2, 3, 1

Aangezien het eerste getal geen voorafgaande getallen heeft kunnen we geen gemiddelde bepalen (NA = not available). Het tweede getal in de nieuwe reeks is het gemiddelde van het eerste en het tweede (1, 2). Het derde getal, dat van het tweede en het derde enz.

NA, 1.5, 2.5, 2

Voor een window van 3, zal de nieuwe reeks er als volgt uitzien

NA, NA, 2, 2

Opdracht

Schijf een functie smoother() die een reeks van getallen zal smoothen. De functie heeft 2 argumenten. Het eerste argument is een lijst die gehele getallen bevat. Het tweede argument (window) is het window waarmee de smoother zal werken. Let op, dit is een optioneel argument met standaard waarde 7. Voor de posities in de reeks waar geen gemiddelde bepaald kan worden (de eerste getallen in de reeks), moet de nieuwe reeks 'NA' bevatten.

Voorbeeld

>>> smoother([1,2,3,1], window=2)
["NA", 1.5, 2.5, 2]

>>> smoother([1,2,3,1], window=3)
["NA", "NA", 2, 2]