Inleiding
Deze gids richt zich op Python-oefeningen en praktijkvoorbeelden die gericht zijn op data-analyse met de bibliotheken NumPy en Matplotlib, zoals deze worden aangeboden in cursussen van bijvoorbeeld SpiralTrain. Deze technologieën zijn essentieel voor wetenschappers en Big Data-analisten die Python willen gebruiken om data efficiënt te verwerken en te visualiseren.
NumPy is een krachtige Python-bibliotheek voor numerieke berekeningen, en wordt vaak gebruikt in combinatie met SciPy en Matplotlib voor data-analyse en visualisatie. In deze gids zullen we praktijkgerichte oefeningen behandelen die aansluiten bij de modules van een typische cursus, zoals de modules Introductie tot NumPy, Algemene functies, Matrices, Speciale routines en Visualisatie met Matplotlib.
Deze gids is bedoeld voor zowel beginnende als ervaren Python-gebruikers die hun kennis willen uitbreiden in het domein van data-analyse. Het doel is om oefeningen te bieden die gericht zijn op het begrijpen van de kernconcepten van NumPy en het toepassen van die kennis in de praktijk.
Module 1: Introductie tot NumPy
NumPy is een open-source Python-bibliotheek die toegang biedt tot krachtige N-dimensionale arrays en een reeks wiskundige functies om numerieke berekeningen uit te voeren. In deze module leer je de basisconcepten van NumPy, zoals het aanmaken van arrays, het selecteren van elementen, het manipuleren van arrays en het uitvoeren van basisbewerkingen.
Oefening 1: Aanmaken van een array
Maak een 1D-array aan met de getallen 1 tot en met 10. Gebruik vervolgens de functie np.arange() om dit te doen.
```python import numpy as np
array1d = np.arange(1, 11) print(array1d) ```
Oefening 2: Aanmaken van een 2D-array
Maak een 2D-array van 3 rijen en 4 kolommen met getallen van 0 tot 11. Gebruik np.reshape() om dit te doen.
python
array_2d = np.arange(0, 12).reshape(3, 4)
print(array_2d)
Oefening 3: Selectie van elementen
Selecteer het element op rij 1, kolom 2 (0-indexering) van de array die je in oefening 2 hebt gemaakt.
python
element = array_2d[1, 2]
print(element)
Oefening 4: Slicing
Selecteer alle elementen in de tweede kolom van de array.
python
column = array_2d[:, 1]
print(column)
Oefening 5: Verandering van vorm
Werk de array om tot een 4 rijen en 3 kolommen. Gebruik np.reshape().
python
array_reshaped = array_2d.reshape(4, 3)
print(array_reshaped)
Deze oefeningen helpen bij het begrijpen van de basis van arraymanipulatie in NumPy, een essentieel onderdeel van elke data-analyse.
Module 2: Algemene functies
In deze module leer je over een reeks algemene functies in NumPy, zoals het aanmaken van arrays, het manipuleren van arrayvormen en het werken met NaN-waarden.
Oefening 6: Aanmaken van een array met np.full()
Maak een 2D-array van 2 rijen en 3 kolommen waarin elk element de waarde 5 heeft.
python
array_full = np.full((2, 3), 5)
print(array_full)
Oefening 7: Aanmaken van een array met np.zeros() en np.ones()
Maak een 3D-array van 2 rijen, 3 kolommen en 4 elementen, waarin elk element de waarde 1 heeft. Herhaal dit met np.zeros().
python
array_ones = np.ones((2, 3, 4))
array_zeros = np.zeros((2, 3, 4))
print(array_ones)
print(array_zeros)
Oefening 8: NaN-waarden
Maak een array met 5 elementen waarvan twee NaN-waarden zijn. Bereken vervolgens het gemiddelde met np.nanmean().
python
array_nan = np.array([1, 2, np.nan, 4, np.nan])
mean_nan = np.nanmean(array_nan)
print(mean_nan)
Deze oefeningen tonen aan hoe je effectief werkt met arraymanipulatie, inclusief het aanmaken van arrays met specifieke waarden en het omgaan met ontbrekende data (NaN).
Module 3: Werken met matrices
Matrixbewerkingen zijn een van de fundamentele onderdelen van data-analyse. In deze module leer je hoe je matrices aanmaakt, manipuleert en bewerkingen op voert.
Oefening 9: Aanmaken van een matrix
Maak een 3x3-matrix met getallen van 0 tot 8. Gebruik np.arange() en np.reshape().
python
matrix = np.arange(0, 9).reshape(3, 3)
print(matrix)
Oefening 10: Transponeren van een matrix
Transponeer de matrix die je in oefening 9 hebt gemaakt.
python
matrix_transposed = matrix.T
print(matrix_transposed)
Oefening 11: Matrixvermenigvuldiging
Voer matrixvermenigvuldiging uit op twee 3x3-matrices.
```python matrixa = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) matrixb = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])
matrixproduct = np.dot(matrixa, matrixb) print(matrixproduct) ```
Oefening 12: Inversie van een matrix
Bereken de inverse van een 3x3-matrix. Zorg dat de matrix inverteerbaar is.
python
matrix_invertible = np.array([[1, 0, 0], [0, 2, 0], [0, 0, 3]])
matrix_inverse = np.linalg.inv(matrix_invertible)
print(matrix_inverse)
Oefening 13: Eigenwaarden en -vectoren
Bereken de eigenwaarden en -vectoren van een 3x3-matrix.
python
eigenvalues, eigenvectors = np.linalg.eig(matrix_invertible)
print("Eigenwaarden:", eigenvalues)
print("Eigenvectoren:", eigenvectors)
Deze oefeningen tonen aan hoe je matrices aanmaakt, manipuleert en bewerkingen op voert, wat essentieel is voor complexe data-analyse en wiskundige berekeningen.
Module 4: Speciale routines
In deze module leer je over routines in NumPy voor ordening, zoekopdrachten en vergelijkingen.
Oefening 14: Sorteren van een array
Maak een array van 10 willekeurige getallen en sorteer deze in oplopende volgorde.
python
random_array = np.random.rand(10)
sorted_array = np.sort(random_array)
print(sorted_array)
Oefening 15: Zoeken in een array
Zoek het indexnummer van het element met de waarde 0.5 in de array die je in oefening 14 hebt gemaakt.
python
index = np.where(random_array == 0.5)
print(index)
Oefening 16: Vergelijkingen tussen arrays
Maak twee arrays aan en vergelijk of ze gelijk zijn aan elkaar.
python
array_a = np.array([1, 2, 3])
array_b = np.array([1, 2, 3])
equal = np.array_equal(array_a, array_b)
print(equal)
Oefening 17: Assert-functie
Gebruik np.testing.assert_array_equal() om te controleren of twee arrays gelijk zijn.
python
np.testing.assert_array_equal(array_a, array_b)
Deze oefeningen tonen aan hoe je NumPy kunt gebruiken voor efficiënte data-manipulatie, inclusief sorteren, zoeken en vergelijkingen.
Module 5: Visualisatie met Matplotlib
Matplotlib is een krachtige Python-bibliotheek voor het visualiseren van data. In deze module leer je hoe je eenvoudige plots maakt, subplots, histogrammen en logaritmische plots.
Oefening 18: Eenvoudige plot
Maak een eenvoudige plot van een lijn met 10 punten.
```python import matplotlib.pyplot as plt
x = np.arange(0, 10) y = np.arange(0, 10)
plt.plot(x, y) plt.show() ```
Oefening 19: Histogram
Maak een histogram van 100 willekeurige getallen tussen 0 en 100.
python
data = np.random.randint(0, 100, size=100)
plt.hist(data, bins=10)
plt.show()
Oefening 20: Subplots
Maak een plot met twee subplots: één voor een lijnplot en één voor een scatterplot.
```python x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x)
plt.subplot(2, 1, 1) plt.plot(x, y1) plt.title("Sinus")
plt.subplot(2, 1, 2) plt.scatter(x, y2) plt.title("Cosinus")
plt.tight_layout() plt.show() ```
Oefening 21: Logaritmische plot
Maak een logaritmische plot van een lijn met 10 punten.
```python x = np.arange(1, 11) y = x**2
plt.loglog(x, y) plt.show() ```
Oefening 22: 3D-plot
Maak een 3D-plot van een functie.
```python x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) x, y = np.meshgrid(x, y) z = np.sin(np.sqrt(x2 + y2))
fig = plt.figure() ax = fig.addsubplot(111, projection='3d') ax.plotsurface(x, y, z, cmap='viridis')
plt.show() ```
Deze oefeningen tonen aan hoe je Matplotlib kunt gebruiken om data te visualiseren, van eenvoudige lijnplots tot complexe 3D-visualisaties.
Conclusie
In deze gids zijn een reeks Python-oefeningen behandeld die gericht zijn op data-analyse met NumPy en visualisatie met Matplotlib. Deze oefeningen zijn ontworpen om de kernconcepten van deze bibliotheken te versterken en te tonen hoe ze in de praktijk worden toegepast. Of je nu een beginner of ervaren Python-gebruiker bent, deze oefeningen helpen je om je kennis in data-analyse en visualisatie te verbeteren. Door deze oefeningen te doorwerken, ben je beter voorbereid op de uitdagingen van data-analyse in de echte wereld.