Python Dokumentasjon

En oversikt over grunnleggende Python-funksjoner for statistisk analyse. Bruk søket eller kategoriene for å finne den funksjonen du trenger.

mean()

Beregner det aritmetiske gjennomsnittet av tallene i data.

Syntaks

mean(data)

Eksempel

from statistics import mean
data = [1, 2, 3, 4, 5]
gjennomsnitt = mean(data)
print(gjennomsnitt)  # Output: 3

Resultat

Returnerer gjennomsnittet av verdiene i listen (3.0).

median()

Beregner medianen (midtverdien) av tallene i data.

Syntaks

median(data)

Eksempel

from statistics import median
data = [1, 3, 5, 7, 9]
midtverdi = median(data)
print(midtverdi)  # Output: 5

Resultat

Returnerer medianen av verdiene i listen (5).

mode()

Finner den vanligste verdien (modus) i data.

Syntaks

mode(data)

Eksempel

from statistics import mode
data = [1, 2, 2, 3, 3, 3, 4]
vanligst = mode(data)
print(vanligst)  # Output: 3

Resultat

Returnerer den vanligste verdien i listen (3).

pstdev()

Beregner populasjonsstandardavviket av data.

Syntaks

pstdev(data, mu=None)

Eksempel

from statistics import pstdev
data = [1, 2, 3, 4, 5]
std = pstdev(data)
print(std)  # Output: ca 1.4142

Resultat

Returnerer populasjonsstandardavviket av verdiene i listen (√2 ≈ 1.4142).

stdev()

Beregner utvalgs-standardavviket av data.

Syntaks

stdev(data, xbar=None)

Eksempel

from statistics import stdev
data = [1, 2, 3, 4, 5]
std = stdev(data)
print(std)  # Output: ca 1.5811

Resultat

Returnerer utvalgs-standardavviket av verdiene i listen.

len()

Returnerer antall elementer i et objekt (f.eks. en liste).

Syntaks

len(objekt)

Eksempel

data = [1, 2, 3, 4, 5]
antall = len(data)
print(antall)  # Output: 5

Resultat

Returnerer antall elementer i listen (5).

sum()

Summerer alle tallene i et iterbart objekt.

Syntaks

sum(iterbart_objekt, start=0)

Eksempel

data = [1, 2, 3, 4, 5]
total = sum(data)
print(total)  # Output: 15

Resultat

Returnerer summen av alle verdiene i listen (15).

min()

Finner den minste verdien i et iterbart objekt.

Syntaks

min(iterbart_objekt)

Eksempel

data = [5, 3, 8, 1, 7]
minste = min(data)
print(minste)  # Output: 1

Resultat

Returnerer den minste verdien i listen (1).

max()

Finner den største verdien i et iterbart objekt.

Syntaks

max(iterbart_objekt)

Eksempel

data = [5, 3, 8, 1, 7]
største = max(data)
print(største)  # Output: 8

Resultat

Returnerer den største verdien i listen (8).

print()

Skriver ut verdier til konsollen med ett mellomrom mellom hver verdi som standard.

Syntaks

print(verdi1, verdi2, ..., sep=" ", end="\n")

Eksempel

navn = "Sara"
alder = 15
print("Navn:", navn, "Alder:", alder)  # Output: Navn: Sara Alder: 15

Resultat

Skriver ut de angitte verdiene til konsollen med standardseparator (mellomrom) mellom hver verdi.

f-strenger

En moderne og lesbar måte å formatere strenger på ved å inkludere variabler og uttrykk direkte i teksten.

Syntaks

f"tekst {uttrykk} mer tekst"

Eksempel

navn = "Sara"
alder = 15
print(f"Hei, jeg heter {navn} og er {alder} år gammel.")
# Output: Hei, jeg heter Sara og er 15 år gammel.

Resultat

Evaluerer uttrykkene i krøllparentesene og setter verdiene inn i strengen.

Formaterte f-strenger

F-strenger med formatspesifikasjoner for å kontrollere hvordan verdier vises.

Syntaks

f"tekst {uttrykk:formatering} mer tekst"

Eksempel

tall = 3.14159
prosent = 0.8543
print(f"Pi avrundet: {tall:.2f}")
print(f"Prosentandel: {prosent:.1%}")
# Output:
# Pi avrundet: 3.14
# Prosentandel: 85.4%

Resultat

Formaterer verdier i f-strenger etter spesifikke krav, som antall desimaler eller prosent.

Anførselstegn

Definerer en streng (tekst) i Python. Bruk anførselstegn rundt tekst, men ikke rundt variabelnavn.

Syntaks

"tekst" eller 'tekst'

Eksempel

navn = "Sara"  # Definerer en streng-variabel
print(navn)    # Bruker variabelen - ingen anførselstegn
print("navn")  # Skriver ut selve teksten "navn"
# Output:
# Sara
# navn

Resultat

Demonstrerer forskjellen mellom å bruke anførselstegn (for tekst) og å ikke bruke anførselstegn (for variabler).

for loop

Itererer gjennom elementene i et iterbart objekt.

Syntaks

for variabel in iterbart_objekt:
    # kode som skal utføres

Eksempel

data = [1, 2, 3, 4, 5]
sum = 0
for tall in data:
    sum += tall
print(sum)  # Output: 15

Resultat

Utfører koden for hvert element i listen. I eksemplet legges hvert tall til i summen.

if statement

Utfører kode basert på om en betingelse er sann eller ikke.

Syntaks

if betingelse:
    # kode hvis sant
elif annen_betingelse:
    # kode hvis annen betingelse er sant
else:
    # kode hvis ingenting er sant

Eksempel

tall = 7
if tall > 10:
    print('Større enn 10')
elif tall > 5:
    print('Mellom 6 og 10')
else:
    print('5 eller mindre')
# Output: Mellom 6 og 10

Resultat

Utfører kode basert på om betingelsen er sann. I eksemplet skrives "Mellom 6 og 10" ut.

while loop

Utfører kode så lenge en betingelse er sann.

Syntaks

while betingelse:
    # kode som skal utføres
    # husk å endre betingelsen

Eksempel

i = 0
sum = 0
while i < 5:
    sum += i
    i += 1
print(sum)  # Output: 10

Resultat

Utfører kode så lenge betingelsen er sann. I eksemplet summeres tallene 0 til 4, som gir 10.

list comprehension

En kompakt måte å lage nye lister basert på eksisterende lister.

Syntaks

[uttrykk for element in iterbart_objekt if betingelse]

Eksempel

data = [1, 2, 3, 4, 5]
doblet = [x * 2 for x in data]
print(doblet)  # Output: [2, 4, 6, 8, 10]

Resultat

Lager en ny liste ved å utføre en operasjon på hvert element i den opprinnelige listen.

sorted()

Sorterer elementene i et iterbart objekt.

Syntaks

sorted(iterbart_objekt, key=None, reverse=False)

Eksempel

data = [5, 3, 8, 1, 7]
sortert = sorted(data)
print(sortert)  # Output: [1, 3, 5, 7, 8]

Resultat

Returnerer en ny sortert liste basert på den opprinnelige listen.

count()

Teller antall forekomster av en verdi i en liste.

Syntaks

liste.count(verdi)

Eksempel

data = [1, 2, 2, 3, 3, 3, 4]
antall_3 = data.count(3)
print(antall_3)  # Output: 3

Resultat

Returnerer antall ganger verdien forekommer i listen.

append()

Legger til et element på slutten av en liste.

Syntaks

liste.append(element)

Eksempel

data = [1, 2, 3]
data.append(4)
print(data)  # Output: [1, 2, 3, 4]

Resultat

Endrer den opprinnelige listen ved å legge til elementet på slutten.

pd.DataFrame()

Oppretter en to-dimensjonal tabellisk datastruktur. Dette er en avansert funksjon fra pandas-biblioteket.

Syntaks

pd.DataFrame(data, index=None, columns=None)

Eksempel

import pandas as pd
data = {'Navn': ['Anders', 'Berit', 'Camilla'],
        'Alder': [15, 16, 15],
        'Karakter': [5, 4, 6]}
df = pd.DataFrame(data)
print(df)

Resultat

Lager en tabell med kolonner for Navn, Alder og Karakter.

plt.plot()

Lager et linjediagram. Dette er en avansert funksjon fra matplotlib-biblioteket.

Syntaks

plt.plot(x, y)

Eksempel

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y)
plt.xlabel('x-verdier')
plt.ylabel('y-verdier')
plt.title('Kvadrattall')
plt.show()

Resultat

Viser et linjediagram av kvadrattallene.

Kom i gang med Python

Grunnleggende Python for statistikk krever bare standardbiblioteket:

from statistics import mean, median, mode, pstdev, stdev

# Eksempeldata
data = [1, 2, 3, 4, 5, 5]

# Beregn statistiske mål
print(f"Gjennomsnitt: {'{'}mean(data){'}'}")
print(f"Median: {'{'}median(data){'}'}")
print(f"Modus: {'{'}mode(data){'}'}")
print(f"Standardavvik (populasjon): {'{'}pstdev(data){'}'}")
print(f"Standardavvik (utvalg): {'{'}stdev(data){'}'}")

Arbeide med frekvenstabeller

En vanlig måte å representere data på er som frekvenstabeller. Her er et eksempel på hvordan du kan konvertere en frekvenstabell til en liste med rådata for statistisk analyse:

from statistics import mean, median, mode, pstdev

# Frekvenstabell som liste av tupler: (verdi, frekvens)
frekvenstabell = [(0, 8), (1, 5), (2, 6), (4, 3)]

# Konvertere frekvenstabell til liste med rådata
liste = []
for verdi, frekvens in frekvenstabell:
    liste += frekvens*[verdi]
    
print(liste)  # [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4]

# Beregne statistiske mål på listen
print(f"Gjennomsnitt: {'{'}mean(liste):.2f{'}'}")
print(f"Median: {'{'}median(liste){'}'}")
print(f"Typetall: {'{'}mode(liste){'}'}")
print(f"Standardavvik: {'{'}pstdev(liste):.2f{'}'}")
print(f"Antall verdier: {'{'}len(liste){'}'}")

# Alternativ måte med list comprehension
liste2 = [verdi for verdi, frekvens in frekvenstabell for _ in range(frekvens)]
print(f"Liste laget med list comprehension: {'{'}liste2{'}'}")

Utskrift og formatering i Python

En viktig del av programmering er å skrive ut resultater. I Python bruker vi print() for dette, og f-strenger (f-strings) er en elegant måte å inkludere variabelverdier i tekst.

F-strenger og print()

F-strenger lar deg inkludere variabler direkte i tekst ved å sette dem mellom krøllparentes {}. Dette gjør koden mer leselig og lettere å vedlikeholde:

# Vanlig utskrift
print("Hei, verden!")

# Grunnleggende f-string
navn = "Sara"
alder = 15
print(f"Hei, jeg heter {'{'}navn{'}'} og er {'{'}alder{'}'} år gammel.")

# F-strenger med formatering
gjennomsnitt = 4.5833
print(f"Gjennomsnittet er {'{'}gjennomsnitt{'}'}")            # Skriver ut: Gjennomsnittet er 4.5833
print(f"Avrundet: {'{'}gjennomsnitt:.2f{'}'}")                # Skriver ut: Avrundet: 4.58
print(f"Prosent: {'{'}gjennomsnitt/6*100:.1f{'}'}")          # Skriver ut: Prosent: 76.4%

# F-strenger med uttrykk
a = 5
b = 7
print(f"Summen av {'{'}a{'}'} og {'{'}b{'}'} er {'{'}a + b{'}'}")             # Skriver ut: Summen av 5 og 7 er 12

# Utskrift av flere linjer (flere print-uttalelser)
print("Linje 1")
print("Linje 2")

# Utskrift på samme linje
print("Del 1", end=" ")   # end-parameteren endrer linjeskiftet til et mellomrom
print("Del 2")

Betydningen av anførselstegn (" ")

I Python er det viktig å forstå forskjellen mellom tekst (strenger) og variabler:

  • Med anførselstegn ("tekst") - Python tolker dette som tekst (en streng)
  • Uten anførselstegn (variabel) - Python tolker dette som en variabel eller et objekt
# ---- Riktig bruk av anførselstegn ----

# Anførselstegn for tekst
print("Dette er en tekst")
navn = "Emma"
print(f"Hei {'{'}navn{'}'}")     # Variabelnavn uten anførselstegn INNI f-strengen

# Uten anførselstegn for variabler
alder = 16
print(f"Alder: {'{'}alder{'}'}")

# ---- Feilaktig bruk ----

# FEIL: Forsøker å bruke variabel uten å definere den først
# print(dette_er_ikke_definert)    # Dette vil gi feilmelding

# FEIL: Variabelnavn i anførselstegn inni f-streng
# Dette vil skrive ut: Hei {navn} (bokstavelig talt)
# print(f"Hei {"navn"}")   # Dette vil også gi syntaksfeil

# ---- Kommentarer ----
# Dette er en kommentar. Python ignorerer alt etter #-tegnet på en linje.

"""
Dette er en flerlinjekommentar.
Python ignorerer all tekst mellom triple anførselstegn.
Dette kan også brukes som dokumentasjon.
"""

Tips for debugging med print

Bruk print-uttalelser for å feilsøke koden din. Det er spesielt nyttig å skrive ut:

  • Verdien til variabler på ulike punkter i koden
  • Typen til variabler med print(f"Type: {type(variabel)}")
  • Meldinger som viser hvor i koden du befinner deg
  • Resultatet av beregninger for å verifisere at de er riktige
# Eksempel på debugging med print
data = [10, 20, 30, 40, 50]
print(f"Data: {data}")
print(f"Type av data: {'{'}type(data){'}'}")

# Før løkke
sum = 0
print(f"Startverdi for sum: {sum}")

# Inne i løkken
for tall in data:
    sum += tall
    print(f"Etter å ha lagt til {'{'}tall{'}'}: sum = {'{'}sum{'}'}")

# Endelig resultat
print(f"Endelig sum: {'{'}sum{'}'}")

Bonus: Avanserte biblioteker

For de som vil utforske videre, kan avanserte biblioteker som pandas og matplotlib installeres slik:

pip install pandas matplotlib

Disse bibliotekene gir kraftige verktøy for dataanalyse og visualisering:

import pandas as pd
import matplotlib.pyplot as plt

# Opprette en enkel dataframe
df = pd.DataFrame({
    'Navn': ['Anders', 'Berit', 'Camilla', 'David'],
    'Poeng': [85, 92, 78, 90]
})

# Beregne statistikk med pandas
print(df.describe())

# Lage en enkel visualisering
plt.bar(df['Navn'], df['Poeng'])
plt.title('Poeng per elev')
plt.ylabel('Poeng')
plt.show()