python-numpy-wat-is-python-numpy

Python NumPy is een van de meest fundamentele packages voor data scientists binnen Python. Data Scientist worden en Python leren zonder NumPy kan eigenlijk niet.

Het package is ontwikkeld om het werken met grote matrices en arrays mogelijk te maken. Binnen het pakket zijn veel wiskundige functies beschikbaar. Op deze pagina leer je:

Waarom is Numpy zo handig?

Als je wilt begrijpen waarom NumPy zo handig is dan is het van belang om te snappen wat het package precies mogelijk maakt, namelijk het analyseren en manipuleren van grote hoeveelheden data.

Wanneer je met Python lijsten werkt kun je data ook bewerken, maar bij grotere datasets kom je al snel in de problemen. Dit komt omdat je met een for loop moet werken waarbij iedere regel apart wordt verwerkt. Dit vraagt veel rekenkracht van een computer.

In [19]:

dataset = [[1,3], [9,3], [6,6], [4,5]]
verschillen = []

In [20]:

for rij in dataset:
verschil = rij[0] - rij[1]
verschillen.append(verschil)

print(verschillen)

[-2, 6, 0, -1]

NumPy daarentegen gebruikt het principe "Single Instruction Multiple Data" om in één keer een bepaalde operatie uit te voeren op meerdere datapunten. Zo presteert NumPy een stuk beter en wordt werken met grotere datasets sneller en makkelijker. Dit heet ook wel vectorisatie.

Geschiedenis van Python NumPy

Python NumPy is een combinatie van twee eerdere packages, namelijk Numeric en Numarray. De basis werd gelegd in 1995 door Jim Hugunin en diverse anderen. Tot 2005 werden Numeric en Numarray als twee arraypakketten naast elkaar gebruikt. Travis Oliphant nam toen het initiatief om de pakketten te verenigen.

Python NumPy installeren en importeren

NumPy is een Python package dat apart geïnstalleerd en geïmporteerd moet worden voordat je de functionaliteit uit NumPy in data analyse kunt gebruiken. Onderstaande installatie werkt voor Python 3, en als je Python 2 gebruikt adviseren we dit in de meeste gevallen eerst te updaten.

Installatie op Mac
Je moet eerst Python installeren (zie deze pagina).

  • Druk ⌘ + spatie en typ Terminal. Open de Terminal.

numpy installeren

  • Typ in de terminal 'pip3 install numpy'.
  • Als NumPy succesvol is geïnstalleerd kun je het pakket aanroepen door het te importeren. Doe dit bijvoorbeeld in Jupyter Notebook zoals onderstaand wordt weergegeven.

In [27]:

import numpy as np

Met o.a. NumPy waardevolle inzichten halen uit data? Schrijf je in voor een van onze Python trainingen.


Installatie op Windows
Je moet eerst Python installeren (zie deze pagina).

  • Ga naar de command prompt.
  • Typ 'pip3 install numpy'.
  • Als NumPy succesvol is geïnstalleerd kun je het pakket aanroepen door het te importeren. Doe dit bijvoorbeeld in Jupyter Notebook zoals in bovenstaand voorbeeld.

Een csv bestand openen

Datasets komen vaak in de vorm van een csv bestand. De numpy.genfromtxt() functie zorgt ervoor dat tekst uit het csv bestand omgezet wordt naar NumPy arrays.

In [31]:

dataset = np.genfromtxt('NumpyVoorbeeld.csv', dtype=int, delimiter=',')
print(dataset)

[[-1  4]
[ 8 7]
[ 4 2]
[ 2 3]
[ 5 5]
[ 4 3]
[ 2 2]
[ 3 5]]

Ook interessant: CSV-bestanden openen met de csv-module of Pandas

Selecteren en slicen van rijen en columns

Je kunt rijen en columns selecteren op de volgende manieren. Als je een cijfer tussen blokhaken zet selecteert NumPy de rij die bij het indexnummer hoort.

In [32]:

dataset[2]

Out[32]:

array([4, 2])

Het is mogelijk om met een dubbelepunt (:) aan te geven dat alle volgende, of alle vorige rijen geselecteerd moeten worden.

In [33]:

dataset[3:]

Out[33]:

array([[2, 3],
[5, 5],
[4, 3],
[2, 2],
[3, 5]])

In [34]:

dataset[:1]

Out[34]:

array([[-1,  4]])

Als je een specifiek datapunt wilt selecteren kun je een indexnummer voor zowel de rij als de column meegeven, waarbij het eerste nummer over de rij gaat en het tweede over de column.

In [36]:

dataset[5,1]

Out[36]:

3

Tenslotte is het mogelijk volledige kolommen of rijen te selecteren met alleen een dubbelepunt, zoals in onderstaand voorbeeld waarbij we de laatste column uit de voorbeeld-data selecteren.

In [38]:

dataset[:,0]

Out[38]:

array([-1,  8,  4,  2,  5,  4,  2,  3])

Werken met vectoren

Zoals we hebben gezien kunnen we met NumPy makkelijk stukken van een dataset selecteren. Eerder spraken we over het feit dat NumPy het mogelijk maakt veel operaties te doen op data met een simpele syntax, omdat meerdere datapunten tegelijk worden meegenomen.

Als je bijvoorbeeld de kolommen uit onze voorbeeld dataset op wilt tellen dan ga je als volgt te werk.

In [39]:

column1 = dataset[:,0]
column2 = dataset[:,1]
som = column1 + column2
print(som)

[ 3 15  6  5 10  7  4  8]

Dit is veel makkelijker en sneller dan als je zou moeten werken met for loops. De 1-dimensionale arrays worden ook wel vectors genoemd.

In bovenstaand voorbeeld hebben we twee kolommen opgesteld, maar ook andere operaties zoals bijvoorbeeld delen, aftrekken, of vermenigvuldigen zijn beschikbaar.

Veelgebruikte methods

Er zijn verschillende methods beschikbaar voor NumPy arrays. Populaire methods zijn bijvoorbeeld het minimum, maximum, gemiddelde, sorteren, optellen, of round. Maar er zijn ook geavanceerdere methods beschikbaar zoals de variantie. Onderstaand volgt een aantal voorbeelden voor de voorbeeld-data.

In [40]:

dataset.min()

Out[40]:

-1

In [41]:

dataset.max()

Out[41]:

8

In [43]:

dataset.mean()

Out[43]:

3.625

In [46]:

dataset.sort()
print(dataset)

[[-1  4]
[ 7 8]
[ 2 4]
[ 2 3]
[ 5 5]
[ 3 4]
[ 2 2]
[ 3 5]]

In [47]:

dataset.var()

Out[47]:

4.359375

Met o.a. NumPy waardevolle inzichten halen uit data? Schrijf je in voor een van onze Python trainingen.


Boolean arrays

Nu we de basis van Python NumPy functionaliteit begrijpen kunnen we door met een geavanceerdere toepassing, namelijk boolean arrays. Een boolean array is een array die slechts bestaat uit boolean waarden (True / False).

Boolean waarden zijn vaak de uitkomst van een vergelijking als 4 < 5 (True), of 4 < 2 (False). Je kunt met een dergelijke vergelijking van een ndarray met getallen een boolean array maken.

In [51]:

groter_dan_drie = dataset > 3
print(groter_dan_drie)

[[False  True]
[ True True]
[False True]
[False False]
[ True True]
[False True]
[False False]
[False True]]

Vervolgens kun je met deze boolean array gemakkelijk alleen de waarden selecteren die groter zijn dan drie.

In [52]:

nieuwe_set = dataset[groter_dan_drie]
print(nieuwe_set)

[4 7 8 4 5 5 4 5]

Dit kun je ook gebruiken om bijvoorbeeld bepaalde waarden te vervangen zoals in onderstaand voorbeeld.

In [54]:

dataset[groter_dan_drie] = 1000
print(dataset)

[[  -1 1000]
[1000 1000]
[ 2 1000]
[ 2 3]
[1000 1000]
[ 3 1000]
[ 2 2]
[ 3 1000]]

Van NumPy naar Pandas

Naast NumPy gebruikt een data scientist ook Python Pandas. Beide packages worden gebruikt voor berekeningen met arrays en matrices. Ze worden meestal samen gebruikt, omdat veel functionaliteit van Pandas voortbouwt op NumPy. Werken in beide packages kent daarom veel overeenkomsten. Beide packages behoren tot de SciPy stack (een aantal packages die gecombineerd veel gebruikt worden in data science werkzaamheden).

Wil jij snel op stoom zijn als data scientist in Python? Krijg in twee dagen vertrouwen in het analyseren van data met Python NumPy. Schrijf je in voor onze Python cursus voor data science en ontwikkel je onder begeleiding van ervaren trainers succesvol verder als data scientist. NumPy wordt uitgebreid behandeld. Of kies voor de 4-daagse all round data science opleiding en verdiep je naast Python ook in het ontwikkelen van machine learning modellen.

Download één van onze opleidingsbrochures voor meer informatie

by: