Python oefeningen en praktijkvoorbeelden voor data-analyse met NumPy

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.

Bronnen

  1. SpiralTrain Python NumPy cursus
  2. Microsoft Azure Python chat-app implementatie

Gerelateerde berichten