Lijsten

Previously on numpy

We hebben in het vorige hoofdstuk reeksen gegenereerd met NumPy. Hier is een voorbeeld:

import numpy as np

# Genereer een reeks getallen van 0 tot en met 9
x = np.arange(10)
print(x)

In dit voorbeeld:

  • np.arange(10) genereert een reeks met de waarden van 0 tot en met 9.
  • print(x) drukt de reeks af.

Wanneer je dit uitvoert, zie je dat x niet één enkele waarde bevat, maar een reeks van waarden:

[0 1 2 3 4 5 6 7 8 9]

Dit noemen we een list. Waar een gewone variabele slechts één getal of een string bevat, kan je in een list een hele reeks opslaan.

Lists

Een list is een reeks van variabelen die allemaal van hetzelfde type zijn. In plaats van elke waarde op te slaan in een afzonderlijke variabele, kun je een list gebruiken om meerdere waarden samen op te slaan. Lists zijn handig voor het opslaan en verwerken van lijsten met gegevens.

Je kunt ook zelf een list maken, zonder NumPy.

Vaak wordt in plaats van list ook het woord `Array` gebruikt.

Voorbeelden

Voorbeeld 1: Een List van Getallen

# Maak een array van getallen
getallen = [1, 2, 3, 4, 5]
print(getallen)

Voorbeeld 2: Een Array van Strings

# Maak een array van strings
woorden = ["hond", "kat", "konijn"]
print(woorden)

Iteraties

Alle elementen van een lists overlopen, dat noemen we itereren. Je kunt for-loops gebruiken om over de elementen van een list te itereren.

Voorbeelden

Voorbeeld 1: Itereren over een List van Getallen

getallen = [1, 2, 3, 4, 5]

for nummer in getallen:
    print("Het getal is:", nummer)

Voorbeeld 2: Itereren over een List van Strings

woorden = ["hond", "kat", "konijn"]

for woord in woorden:
    print("Het woord is:", woord)

Belangrijke Mogelijkheden van Lists

Lists bieden veel nuttige mogelijkheden. Hier zijn enkele belangrijke bewerkingen die je kunt uitvoeren op lists.

1. Toevoegen van Elementen

Je kunt elementen toevoegen aan een list met de methode append.

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

2. Verwijderen van Elementen

Je kunt elementen verwijderen uit een list met de methode remove.

woorden = ["hond", "kat", "konijn"]
woorden.remove("kat")
print(woorden)  # Output: ["hond", "konijn"]

3. Lengte van een List

Je kunt de lengte van een list (het aantal elementen) bepalen met de functie len.

getallen = [1, 2, 3, 4, 5]
print("De lengte van de list is:", len(getallen))  # Output: 5

Oefeningen

Probeer nu zelf enkele oefeningen om te oefenen met lists.

Oefening 1: Maak een list van getallen van 1 tot en met 10 en druk elk element af.

Oefening 2: Maak een list van strings met de namen van drie kleuren en druk elk element af.

Oefening 3: Voeg een nieuw element toe aan een list en druk de list af.

Oefening 4: Verwijder een element uit een list en druk de list af.

Oefening 5: Bepaal de lengte van een list en druk deze af.

Oefening 6: Maak een list van getallen en gebruik een for-loop om het gemiddelde van de getallen in de list te berekenen en af te drukken.

Oefening 7: Maak een list van getallen en gebruik een for-loop om de waarde van elk element in de list te verdubbelen en die waarde op te slaan in een nieuwe list. Druk de nieuwe list af.

Oefening 8: Maak een list en gebruik een for-loop om een nieuwe list te maken die de elementen van de oorspronkelijke list in omgekeerde volgorde bevat.

Voor deze oefening gebruik je range op een andere manier dan je gewoon bent. Zoek op het internet op hoe je de elementen van een list van achter naar voor afgaat.

Matplotlib

Installatie

Voordat je Matplotlib kan gebruiken, moeten je het installeren. Numpy heb je al geinstalleerd, maar deze keer pakken we het veiliger aan. Het is een goed idee om een virtuele omgeving te gebruiken om je Python-projecten georganiseerd te houden en afhankelijkheden te beheren.

Virtuele Omgeving in VSCode

  1. Open VSCode.
  2. Open een folder Open de folder waarin je je oefeningen maakt.
  3. Maak een virtual environment
    • Druk de toetsencombinatie Ctrl-Shift-P in. Hiermee open je het command window bovenaan.
    • Typ nu Python: Select Interpreter.
    • Kies nu Create Virtual Environment.
    • Selecteer Venv.
    • Kies nu de Python interpreter waar Global naast staat.
    • Wacht tot het script klaar is.
    • Waarschijnlijk is nu je virtuele omgeving geselecteerd voor de scripts in deze folder. Als dat niet zo is, klik je rechts onderaan op je python omgeving (er kan ook een melding staan dat je geen omgeving actief hebt) en selecteer je de virtuele omgeving (Venv).

Voor wie het graag grafisch ziet gebeuren:

image

  1. Installeer Matplotlib: Open een terminal en typ:

     pip install matplotlib
    

Nu ben je klaar om Matplotlib te gebruiken in je Python-projecten! Je kan deze virtuele omgeving voor al je oefeningen gebruiken. Zo kan je ook experimenteren met nieuwe libraries, zonder dat je aan de eigenlijk python installatie raakt. Als er iets mis gaat, dan kan je de .venv folder verwijderen en deze stappen opnieuw uitvoeren.

Voorbeelden

Met Matplotlib kun je verschillende soorten grafieken maken. Hier zijn enkele basisvoorbeelden. Kopiër de voorbeelden naar je editor en experimenteer ermee.

Voorbeeld 1: Lijngrafiek

import matplotlib.pyplot as plt

# Gegevens
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

# Maak een lijngrafiek
plt.plot(x, y)

# Voeg een titel en labels toe
plt.title("Voorbeeld van een Lijngrafiek")
plt.xlabel("X-as")
plt.ylabel("Y-as")

# Toon de grafiek
plt.show()

Voorbeeld 2: Staafdiagram

import matplotlib.pyplot as plt

# Gegevens
labels = ['A', 'B', 'C', 'D', 'E']
waarden = [5, 7, 3, 8, 4]

# Maak een staafdiagram
plt.bar(labels, waarden)

# Voeg een titel en labels toe
plt.title("Voorbeeld van een Staafdiagram")
plt.xlabel("Categorieën")
plt.ylabel("Waarden")

# Toon de grafiek
plt.show()

Voorbeeld 3: Scatterplot (Puntengrafiek)

import matplotlib.pyplot as plt

# Gegevens
x = [1, 2, 3, 4, 5]
y = [1, 4, 2, 5, 3]

# Maak een scatterplot
plt.scatter(x, y)

# Voeg een titel en labels toe
plt.title("Voorbeeld van een Scatterplot")
plt.xlabel("X-as")
plt.ylabel("Y-as")

# Toon de grafiek
plt.show()

Gebruik van Matplotlib in Wiskunde en Fysica

Matplotlib kan zeer nuttig zijn in vakken zoals wiskunde en fysica, omdat het helpt bij het visualiseren van data en concepten. Hier zijn enkele voorbeelden van hoe Matplotlib kan worden gebruikt:

Grafieken van Wiskundige Functies

Je kunt Matplotlib gebruiken om grafieken van wiskundige functies te tekenen. Bijvoorbeeld, een grafiek van de sinusfunctie:

import matplotlib.pyplot as plt
import numpy as np

# Gegevens
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

# Maak een grafiek van de sinusfunctie
plt.plot(x, y)

# Voeg een titel en labels toe
plt.title("Grafiek van de Sinusfunctie")
plt.xlabel("X-as")
plt.ylabel("Y-as (sin(x))")

# Toon de grafiek
plt.show()

In dit voorbeeld:

  • np.linspace(0, 2 * np.pi, 100) Deze functie van numpy genereert ook een lijst met getallen. Maar het werkt wat anders. Lees de instructie als *genereer 100 getallen tussen 0 en 2 maal pi, gelijkmatig (linear) verdeeld.
  • np.sin(x) maak een lijst met de sinus van elk getal in x.

Bewegingsgrafieken in de Fysica

In de fysica kun je Matplotlib gebruiken om bewegingsgrafieken te maken. Bijvoorbeeld, een grafiek van een vallend object onder invloed van zwaartekracht:

import matplotlib.pyplot as plt

# Gegevens
t = [0, 1, 2, 3, 4, 5]  # tijd in seconden
y = [0, 5, 20, 45, 80, 125]  # afstand in meters

# Maak een bewegingsgrafiek
plt.plot(t, y)

# Voeg een titel en labels toe
plt.title("Bewegingsgrafiek van een Vallend Object")
plt.xlabel("Tijd (s)")
plt.ylabel("Afstand (m)")

# Toon de grafiek
plt.show()

Meer mogelijkheden

Bijna tijd voor oefeningen! Voor je begint nog even een paar mogelijkheden van numpy, die je nodig hebt bij deze oefeningen.

linspace

De functie numpy.linspace genereert een array/list van gelijkmatig verdeelde waarden over een gespecificeerde interval.

Syntax:

numpy.linspace(start, stop, num=50)

Parameters:

  • start: Het begin van het interval.
  • stop: Het einde van het interval.
  • num: Het aantal waarden om te genereren (standaard is 50).

Voorbeeld:

import numpy as np
values = np.linspace(0, 10, 5)
print(values)  # Output: [ 0.   2.5  5.   7.5 10. ]

random.randint

De functie numpy.random.randint genereert willekeurige gehele getallen.

Syntax:

numpy.random.randint(low, high, size)

Parameters:

  • low: De laagste (inclusief) integer om te genereren.
  • high: De hoogste (exclusief) integer om te genereren. Als dit niet is opgegeven, genereert de functie getallen van 0 tot low.
  • size: Het aantal willekeurige getallen of de vorm van de list.

Voorbeeld:

import numpy as np
random_values = np.random.randint(1, 10, size=5)
print(random_values)  # Output: Een array van 5 willekeurige gehele getallen tussen 1 en 9

sin

De functie numpy.sin berekent de sinus van elk element in een array.

Syntax:

numpy.sin(x)

Parameters:

  • x: De input array (in radialen).

Voorbeeld:

import numpy as np
angles = np.linspace(0, 2*np.pi, 100)
sin_values = np.sin(angles)
print(sin_values)

cos

De functie numpy.cos berekent de cosinus van elk element in een array.

Syntax:

numpy.cos(x)

Parameters:

  • x: De input array (in radialen).

Voorbeeld:

import numpy as np
angles = np.linspace(0, 2*np.pi, 100)
cos_values = np.cos(angles)
print(cos_values)  # Output: [ 1.  0. -1.]

legend

De functie matplotlib.pyplot.legend wordt gebruikt om een legenda toe te voegen aan een grafiek, waardoor de verschillende datasets of lijnen in de grafiek worden geïdentificeerd.

Syntax:

matplotlib.pyplot.legend()

Voorbeeld:

import matplotlib.pyplot as plt
import numpy as np

# Gegevens genereren
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# Plotten van de gegevens
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')

# Legenda toevoegen
plt.legend()

# Titel en labels toevoegen
plt.title("Voorbeeld van Sinus en Cosinus")
plt.xlabel("x-waarde")
plt.ylabel("y-waarde")

# Grafiek tonen
plt.show()

In dit voorbeeld:

  • label='sin(x)' en label='cos(x)' in de plt.plot-functies geven aan welke naam aan elke dataset moet worden gegeven.
  • plt.legend() toont de legenda met de opgegeven labels.

Oefeningen

Oefening 1: Lijngrafiek van een Wiskundige Functie

Taak: Gebruik NumPy om de waarden van een wiskundige functie te berekenen en plot deze met Matplotlib.

Beschrijving: Maak een grafiek van de functie (y = x^2) voor (x) waarden van 0 tot 10.

Oefening 2: Staafdiagram van Willekeurige Gegevens

Taak: Maak een staafdiagram van willekeurige gegevens.

Beschrijving: Genereer een array van willekeurige waarden en plot deze als een staafdiagram.

Oefening 3: Scatterplot van Twee Wiskundige Functies

Taak: Maak een scatterplot van twee wiskundige functies.

Beschrijving: Plot de functies (y = sin(x)) en (z = cos(x)) als een scatterplot voor (x) waarden van 0 tot 2π.

Oefening 4: Histogram van Willekeurige Gegevens

Taak: Maak een histogram van willekeurige gegevens.

Beschrijving: Genereer een array van 1000 willekeurige getallen en plot een histogram om de verdeling van de gegevens te laten zien. Als je niet weet wat een histogram is en hoe je er een maakt met matplotlib kan je dat zeker opzoeken.

Oefening 5: Lijngrafiek van Meerdere Reeksen

Taak: Maak een lijngrafiek van meerdere reeksen gegevens.

Beschrijving: Genereer twee reeksen gegevens en plot beide reeksen op dezelfde grafiek.


Previous section:
Next section:
Navigatie