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?
- Geschiedenis van Python NumPy
- Python NumPy installeren en importeren
- Een csv bestand openen
- Selecteren en slicen van rijen en columns
- Werken met vectors
- Veelgebruikte methods
- Boolean arrays
- Van NumPy naar Pandas
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.
dataset = [[1,3], [9,3], [6,6], [4,5]]
verschillen = []
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.
- 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.
import numpy as np
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.
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.
dataset[2]
array([4, 2])
dataset[3:]
array([[2, 3],
[5, 5],
[4, 3],
[2, 2],
[3, 5]])
dataset[:1]
array([[-1, 4]])
dataset[5,1]
3
dataset[:,0]
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.
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.
dataset.min()
-1
dataset.max()
8
dataset.mean()
3.625
dataset.sort()
print(dataset)
[[-1 4]
[ 7 8]
[ 2 4]
[ 2 3]
[ 5 5]
[ 3 4]
[ 2 2]
[ 3 5]]
dataset.var()
4.359375
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.
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]]
nieuwe_set = dataset[groter_dan_drie]
print(nieuwe_set)
[4 7 8 4 5 5 4 5]
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
Rik is data scientist en marketeer bij Data Science Partners. Vanuit zijn achtergrond op de Technische Universiteit Eindhoven heeft hij veel affiniteit met data. Na zijn studie heeft hij als consultant altijd met data gewerkt en tevens ervaring opgedaan in het geven van trainingen.