In veel programmeerproblemen werk je niet alleen met eenvoudige lijsten, maar ook met gegevens die meerdere dimensies hebben, zoals tabellen, matrices, of zelfs 3D-modellen. Python biedt krachtige tools om met zulke multi-dimensionale data te werken, van nested lists tot numpy arrays. In dit hoofdstuk leer je hoe je deze structuren kunt begrijpen, gebruiken en bewerken!
Nested Lists #
Een nested list (geneste lijst) is een lijst die andere lijsten bevat. Dit is handig voor het representeren van data in meerdere dimensies, zoals een matrix (een tabel van rijen en kolommen).
Hoe werken nested lists? #
Je kunt een nested list zien als een lijst binnen een lijst:
matrix = [
[1, 2, 3], # Rij 1
[4, 5, 6], # Rij 2
[7, 8, 9] # Rij 3
]
PythonHier kun je de gegevens op dezelfde manier benaderen als een spreadsheet:
matrix[0]
geeft de eerste rij terug:[1, 2, 3]
matrix[1][2]
geeft het element in de tweede rij en derde kolom:6
Voorbeeld:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[0])
# Toont: [1, 2, 3]
print(matrix[1][2])
# Toont: 6
PythonItereren door een nested list #
Je kunt een nested list doorlopen met geneste for
-lussen:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for rij in matrix:
for item in rij:
print(item, end=" ")
# Uitvoer: 1 2 3 4 5 6 7 8 9
PythonFlattening: Geneste lijsten “plat” maken #
Soms wil je een geneste lijst omzetten naar een eenvoudige, platte lijst. Dit proces heet flattening. Een krachtige manier om dit te doen is met een list comprehension.
Hoe werkt flattening? #
Voorbeeld:
genest = [[1, 2], [3, 4], [5]]
vlak = [item for sublijst in genest for item in sublijst]
print(vlak) # Toont: [1, 2, 3, 4, 5]
PythonWat gebeurt hier?
- De buitenste
for
-lus loopt door elke sublijst in de geneste lijst. - De binnenste
for
-lus haalt elk item uit de sublijst. - Elk item wordt toegevoegd aan de nieuwe, platte lijst
vlak
.
Alternatief met een functie: Als je dit vaker nodig hebt, kun je een functie maken:
def flatten(geneste_lijst):
return [item for sublijst in geneste_lijst for item in sublijst]
genest = [[1, 2], [3, 4], [5]]
print(flatten(genest))
# Toont: [1, 2, 3, 4, 5]
PythonInleiding tot numpy arrays #
numpy
is een populaire Python-bibliotheek die speciaal is ontworpen voor efficiënte numerieke berekeningen. Het biedt een krachtige datastructuur, de numpy array
, die ideaal is voor het werken met multi-dimensionale data, zoals matrices.
Waarom numpy
gebruiken? #
- Efficiëntie:
numpy arrays
zijn sneller en nemen minder geheugen in beslag dan geneste lijsten. - Makkelijker rekenen:
Metnumpy
kun je wiskundige operaties uitvoeren op hele arrays zonder expliciete lussen. - Rijk aan functionaliteit:
numpy
bevat tools voor matrixbewerkingen, lineaire algebra, statistieken en nog veel meer.
Wanneer numpy
gebruiken? #
Als je werkt met grote datasets of veel numerieke berekeningen moet uitvoeren, is numpy
onmisbaar. Denk aan toepassingen zoals:
- Data-analyse
- Machine learning
- Wetenschappelijke berekeningen
Hoe werkt een numpy array? #
Je kunt een numpy array
zien als een verbeterde versie van een lijst. Het ondersteunt meerdere dimensies en biedt eenvoudige toegang tot rijen, kolommen en individuele elementen.
Voorbeeld: Een numpy array maken
import numpy as np
# Maak een 2D-array
matrix = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
print(matrix)
PythonUitvoer:
[[1 2 3]
[4 5 6]
[7 8 9]]
PythonToegang tot elementen: Net zoals bij geneste lijsten kun je items benaderen met rijen en kolommen:
print(matrix[0, 1])
# Toont: 2 (eerste rij, tweede kolom)
PythonRekenen met numpy arrays #
Een van de grootste voordelen van numpy
is dat je hele arrays kunt manipuleren zonder expliciete lussen. Dit heet vectorisatie.
Voorbeeld: Elementgewijze berekeningen
matrix = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
# Voeg 10 toe aan elk element
matrix_plus_10 = matrix + 10
print(matrix_plus_10)
PythonUitvoer:
[[11 12 13]
[14 15 16]
[17 18 19]]
PythonMatrixvermenigvuldiging:
matrix1 = np.array([
[1, 2],
[3, 4]
])
matrix2 = np.array([
[5, 6],
[7, 8]
])
resultaat = np.dot(matrix1, matrix2)
print(resultaat)
PythonUitvoer:
[[19 22]
[43 50]]
PythonWanneer kies je voor geneste lijsten of numpy? #
Gebruik | Geneste lijsten | Numpy arrays |
---|---|---|
Kleine datasets | ✅ | ❌ |
Eenvoudige bewerkingen | ✅ | ❌ |
Grote datasets | ❌ | ✅ |
Complexe berekeningen | ❌ | ✅ |
Samenvatting #
Of je nu geneste lijsten of numpy arrays
gebruikt, Python biedt krachtige tools voor het werken met multi-dimensionale data. Nested lists zijn ideaal voor kleinere, eenvoudige datasets, terwijl numpy arrays essentieel zijn voor efficiënte, grootschalige berekeningen. Door flattening en matrixbewerkingen te combineren, kun je complexe datastructuren eenvoudig beheren en manipuleren.
Probeer zelf een geneste lijst te maken of experimenteer met numpy arrays. Je zult versteld staan van wat je allemaal kunt doen! 🚀🎉