Bruk av python i emnet «Statistikk»

Gjennomsnitt

Vi kan benytte oss av python til å regne ut et gjennomsnitt ganske greit. Det finnes egne funksjoner i biblioteket «statistics», men her vil jeg se mer på hvordan vi kan benytte det i rett i koden uten å importere funksjoner. Den første metoden du ser under bruker mange variabler (tot, ant, snitt). Dette gjør jeg for at koden skal bli grei å lese, rett og slett for at den skal bli oversiktlig.

datasett = [34,21,67,54,88,43,23,56,89,45,67,87]

tot = sum(datasett)
ant = len(datasett)
snitt = tot / ant

print("Gjennomsnitt:", snitt)
print("Gjennomsnitt:", round(snitt, 2))

Gjennomsnitt: 56.166666666666664
Gjennomsnitt: 56.17

Vi kan lage en tilsvarende kode uten bruk av variabler. Se på dennne:

datasett = [34,21,67,54,88,43,23,56,89,45,67,87]

print("Gjennomsnitt:", round(sum(datasett) / len(datasett), 2))

Gjennomsnitt: 56.17

Vi kan også velge å lage vår egen funksjon. Det kan være praktisk dersom vi skal regne ut et gjennomsnitt flere ganger i koden, for da trenger vi ikke å skrive utregningen hver eneste gang. Her ser du et eksempel på en slik kode. Jeg starter med å lage funksjonen:

def snitt(liste, des):
    return round(sum(liste) / len(liste), des)

datasett = [34,21,67,54,88,43,23,56,89,45,67,87]
print("Gjennomsnitt:", snitt(datasett, 3))
print("Gjennomsnitt:", snitt([44,55,67], 4))

Gjennomsnitt: 56.167
Gjennomsnitt: 55.3333

Variasjonsbredde

Vi kan regne ut variasjonsbredde fra en liste. Logikken vi bruker er at vi lager en kopi av lista, som vi sorterer. Når vi har den sorterte varianten, så finner vi bare differansen mellom siste og første observasjon 🙂

datasett = [34,21,67,54,88,43,23,56,89,45,67,87]
kopi = datasett
kopi.sort()
vb = kopi[-1] - kopi[0]
print("Variasjonsbredde:", vb)

Variasjonsbredde: 68

Median

Median kan være litt mer kronglete å finne, fordi vi benytter 2 forskjellige metoder, avhengig av om antall observasjoner er partall eller oddetall. Dersom antall observasjoner er oddetall, så finner vi rett og slett den midterste, men dersom den er partall så må vi finne snittet av de to i midten.

datasett = [34,21,67,54,88,43,23,56,89,45,67,87]
kopi = datasett
kopi.sort()

if len(kopi) % 2 == 0:
    num = len(kopi) // 2
    med = (datasett[num] + datasett[num + 1]) / 2
else:
    num = len(kopi) // 2
    med = datasett[num]

print("Median:", med)

Median: 61.5

I koden ser du at jeg bruker utregningen «len(kopi) % 2». Denne utregningen vi returnere resten når antallet deles på 2. Dersom den er 0, vet jeg at antall observasjoner er et partall.

Man ser også at jeg deler med dobbelt deletegn (//). Det kalles floor-divisjon, og returnerer svaret uten desimaler.