Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

NumPy โ€” Arrays aanmaken en inspecteren

NumPy (Numerical Python) is de hoeksteen van het Python data-ecosysteem. Het biedt een efficiรซnte, multidimensionale array-structuur (ndarray) en een uitgebreide bibliotheek van wiskundige functies.

Waarom NumPy in plaats van gewone Python-lijsten?

Python-lijstNumPy-array
SnelheidTraag voor wiskundeTot 100ร— sneller
GeheugenMeer overheadCompacter
TypesGemengdHomogeen
WiskundeGeen vectoroperatiesIngebouwd

Pandas, Matplotlib en vrijwel elke ML-bibliotheek zijn intern gebouwd op NumPy.

2.2.6

Arrays aanmaken vanuit lijstenยถ

[1 2 3 4 5]
<class 'numpy.ndarray'>
[[1 2 3]
 [4 5 6]
 [7 8 9]]

Arrays inspecterenยถ

Drie attributen die je altijd als eerste controleert bij een onbekende array:

shape: (3, 3)
ndim:  2
size:  9
dtype: int64

Datatypes (dtype)ยถ

NumPy-arrays zijn homogeen: alle elementen hebben hetzelfde type. Het type wordt automatisch bepaald, maar je kunt het ook expliciet opgeven.

int64 float64 bool float32
float64

Aanmaakfunctiesยถ

Je hoeft niet altijd vanuit een bestaande lijst te vertrekken โ€” NumPy heeft handige functies om veelgebruikte arrays direct te genereren.

[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

[[1. 1. 1.]
 [1. 1. 1.]]

[[7 7]
 [7 7]]

[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
[0 2 4 6 8]
[0.  0.2 0.4 0.6 0.8 1. ]

Willekeurige getallen met np.random.default_rng()ยถ

De moderne manier om willekeurige getallen te genereren in NumPy is via een Generator-object. Door een seed te geven zorg je voor reproduceerbaarheid โ€” dezelfde seed geeft altijd dezelfde reeks getallen.

[[0.77395605 0.43887844 0.85859792 0.69736803]
 [0.09417735 0.97562235 0.7611397  0.78606431]
 [0.12811363 0.45038594 0.37079802 0.92676499]]
[[ 8 77 65 43 43]
 [85  8 69 20  9]]
mean: -0.029, std: 0.989

Basisstatistiekenยถ

NumPy biedt ingebouwde functies voor veelgebruikte statistieken.

sum:    68
mean:   6.80
std:    4.38
min:    1
max:    15
median: 6.5

Oefeningenยถ

Oefening 1 โ€” Maak de volgende arrays aan en druk telkens shape, ndim en dtype af:

  • Een 1D-array met de getallen 1 t/m 10

  • Een 4ร—4-matrix van nullen met dtype float32

  • Een 3ร—3-eenheidsmatrix

Oefening 2 โ€” Gebruik np.linspace om een array te maken met 9 gelijkmatig verdeelde punten tussen 0 en 2ฯ€. Druk vervolgens de cosinus van elk punt af. Gebruik np.cos() en np.pi.

Oefening 3 โ€” Maak een Generator met seed 123 en genereer:

  • Een 5ร—5-matrix met willekeurige integers tussen 1 en 10 (inclusief 1, exclusief 10)

  • 1000 steekproeven uit een normaalverdeling met gemiddelde 5 en standaardafwijking 2. Druk het empirisch gemiddelde en de empirische standaardafwijking af.

Oefening 4 โ€” Gegeven scores = np.array([78, 92, 65, 88, 74, 95, 60, 83]). Bereken het gemiddelde, de mediaan, de standaardafwijking, het minimum en het maximum. Formatteer de output mooi met f-strings (2 decimalen).

Oefening 5 โ€” Vergelijk de twee aanmaakfuncties: maak een array met np.arange(0, 1, 0.1) en een met np.linspace(0, 1, 10). Zijn ze identiek? Onderzoek eventuele drijvendekommaproblemen door de twee arrays van elkaar af te trekken.