python packages

Op deze pagina vind je een overzicht van de meestgebruikte Python Packages en hun functionaliteit. De packages zijn geordend naar categorie.

Het doel van de pagina is om je kennis te laten maken met de eindeloze mogelijkheden die Python biedt voor data science. Jezelf verdiepen in Python Packages is een belangrijk onderdeel van het leren van Python.

Uiteraard moet je voordat je aan de slag kunt met Python Packages wel Python installeren.

Met onderstaand uitklapmenu kun je in één keer naar een Python package naar keuze springen.

Python packages voor data verzameling en transformatie
Python packages voor visualisaties
Python packages voor Machine Learning
Python packages voor Natural Language Processing

Lees ook: Wat is Jupyter Notebook? [incl. installatie-handleiding]

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

Python packages voor data verzameling en transformatie

Pandas

Pandas is een package waarmee tabulaire data vanuit externe databronnen geïmporteerd, bewerkt, en opgeslagen kan worden. De naam is afkomstig van de term ‘panel data’, een begrip uit de statistiek.

Het geeft de mogelijkheid tot het importeren van data diverse externe databronnen, bijvoorbeeld HTML-, CSV-, XLSX-bestanden, of een SQL database. Hiervan wordt een object gemaakt met rijen en kolommen, vergelijkbaar met een Excel-sheet.

Lees ook: Python vs Excel: wanneer gebruik je wat?

Er zijn diverse ingebouwde functies en methodes om de geïmporteerde data te transformeren. Enkele voorbeelden zijn wiskundige functies toepassen, filteren, groeperen, combineren en het toepassen van tijdreeks functionaliteiten.

Een Pandas object kan vervolgens weer geëxporteerd worden naar een diversiteit aan verschillende uitgangs formaten, om zo de gemodificeerde data extern op te slaan.

Oefenen met Pandas? Dat kan in deze Python for data science tutorial met echte data set

NumPy

Met NumPy kunnen multidimensionale arrays en matrices verwerkt worden. Hiervoor is binnen de package een uitgebreide verzameling wiskundige functies en methodes beschikbaar om verschillende data bewerkingen mogelijk te maken op de objecten.

NumPy is gebaseerd op twee eerdere Python packages: Numeric en Numarray. Dit verklaart ook de naam.

Doordat Python een "interpreter programmeertaal" is zijn wiskundige algoritmen in de taal veelal langzamer dan in een gecompileerde taal coals C. NumPy lost dit op doordat directe matrix operaties verricht worden. Hierdoor is een algoritme wat gebruik maakt van NumPy bijna net zo snel als het equivalent wat in bijvoorbeeld C geschreven zou zijn.

SciPy

SciPy is net als NumPy een package voor het verrichten van wiskundige functies. Het is gebaseerd op NumPy biedt additionele functionaliteiten.

De naam is een afkorting voor ‘scientific Python’. Net als in NumPy is de datastructuur een multidimensionaal array.

Met SciPy zijn hulpmiddelen beschikbaar om vraagstukken uit bijvoorbeeld de lineaire algebra, kansrekening, en integraalvergelijkingen op te lossen.

ScraPy

ScraPy is een package waarmee spider bots gemaakt kunnen worden: algoritmes om geautomatiseerd (web)pagina’s uit te lezen. Het uitlezen van informatie op webpagina’s wordt ook wel scraping en crawling genoemd.

De naam ScraPy is dan ook een samenvoeging van de woorden scraping en Python.

Met ScraPy kan door het uitlezen van webpagina’s de hierop aanwezige informatie als gestructureerde data worden verkregen.

Pypyodbc

Pypyodbc is een Python package waarmee een database connectie gemaakt kan worden door gebruik te maken van ODBC (open database connectivity).

Nadat de verbinding met een database gemaakt is kan middels SQL code (structured query language) informatie vanuit de tabellen opgehaald en verwerkt worden.

Python packages voor visualisaties

Matplotlib

Matplotlib is een toegankelijke package om tweedimensionale diagrammen en grafieken te plotten. Er kunnen diverse soorten grafieken mee gemaakt worden, variërend van histogrammen en scatterplots tot niet-cartesische coördinaten grafieken.

Het is ontstaan om een gratis alternatief te bieden voor bepaalde onderdelen van het softwarepakket MATLAB, dit verklaart ook de naam.

Er is veel vrijheid voor het personaliseren van de stijl van de grafieken die met Matplotlib gemaakt kunnen worden. Denk hierbij aan onder andere kleurgebruik, lettertypes, groottes, opmaken van assen en legenda’s.

Veel van de andere packages om grafieken te plotten maken bovendien gebruik van Matplotlib.

Oefenen met Matplotlib? Dat kan in deze Python for data science tutorial met echte data set

Seaborn

Seaborn is een package bovenop op Matplotlib waarmee door gebruik te maken van standaard settings makkelijk grafieken voor data-analyse doeleinden gemaakt kunnen worden.

Het is gebruikelijk om Seaborn te importeren als ‘sns’, wat ongebruikelijk is omdat het geen directe afkorting is. Dit is een inside joke, het is een verwijzing naar het karakter Samuel Norman Seaborn uit de serie The West Wing.

Seaborn biedt een rijke keuze aan verschillende grafiektypen variërend van standaard tot complex. Hierbij valt te denken aan jointplots (gecombineerde grafieken), violin charts (vergelijkbaar met boxplots maar met ingebouwde visualisatie van spreiding) en heatmaps (visualiseren van correlatie sterktes tussen meerdere variables).

Oefenen met Seaborn? Dat kan in deze Python for data science tutorial met echte data set

Bokeh

Bokeh is een package waarmee interactieve en schaalbare data visualisaties gemaakt kunnen worden die middels JavaScript widgets op webpagina’s weergegeven kunnen worden.

De naam bokeh komt van het Japanse woord bo-ke, wat in deze strekking een betekenis heeft als in focus door vervaging.

Het package bevat een grote verzameling verschillende visualisatiemogelijkheden zoals grafiektypen en stijl opties. Verder zijn er diverse opties om interactie mogelijk te maken zoals het linken van grafieken, het definiëren van callback functies en het toevoegen van widgets.

Plotly

Plotly is naast Bokeh ook een packages waarmee interactieve grafieken gemaakt kunnen worden voor de toepassing op bijvoorbeeld webapplicaties. De naam is een verwijzing naar het plotten van grafieken.
Het biedt net als Bokeh een grote diversiteit aan visualisatiemogelijkheden en maakt gebruik van JavaScript voor webfunctionaliteit. Voorbeelden van visualisatiemogelijkheden zijn 3D grafieken, statistische grafieken en SVG maps (scalable vector graphics).

Pydot

Pydot is een package waarmee al dan niet complexe oriented en non-oriented diagrammen gemaakt kunnen worden.

De naam is een link tussen Python en DOT files. Pydot maakt gebruik van een andere package genaamd Graphviz.

Met Pydot is het mogelijk om structuren te visualiseren. Een veelgebruikte toepassing hiervan is het plotten van een weergave van een neural network of een decision tree algoritme binnen machine learning.

Flask

Flask is een micro web framework geschreven in Python. Vanuit Flask zijn hulpmiddelen beschikbaar om een webapplicatie te maken.

Een micro framework betekent dat het geen tot weinig afhankelijkheden heeft van externe packages. Hierdoor is het enerzijds licht en onafhankelijk, anderzijds bewerkelijker bij het toevoegen van niet aanwezige functionaliteiten.

De mogelijkheden van webapplicaties die met Flask gemaakt kunnen worden zijn eindeloos, denk bijvoorbeeld aan interactieve informatiepagina’s, een blog, een wiki of een web-based kalender.

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

 

Python packages voor machine learning

StatsModels

StatsModels is een package wat functionaliteiten biedt om verschillende statistische voorspellingsmodellen te creëren, om statistische testen te verrichten, en voor het verkennen van statistische data. De naam is een afkorting van ‘Statistical Models’.

Er kunnen bijvoorbeeld statistische lineaire modellen zoals lineaire regressie opgesteld worden, er kunnen statistische testen zoals ANOVA verricht worden, en tijdreeksen kunnen geanalyseerd worden.

Scikit-learn

Scikit-learin bevat vele algoritmes voor standaard machine learning en data mining taken zoals clusteren, regressie, classificatie, dimensie reductie en modelselectie.

De naam is een afgeleide van scientific kit. Scikit-learn is gebaseerd op NumPy, SciPy en Matplotlib en wordt gezien als een van de beste packages binnen de doelgroep.

Scikit-learn wordt vooral gebruikt voor het maken van modellen. Specifieke voorbeelden van modellen die met Scikit-learn gemaakt kunnen worden zijn logistic regression, support vector machines, random forests, k-neighbors.

XGBoost

XGBoost is package waarmee gradient boosting machine learning modellen opgebouwd kunnen worden. De naam is dan ook afkomstig van de term gradient boosting.

Gradient boosting richt zich op het samenstellen van meerdere individueel zwakkere decision tree modellen tot een krachtiger geheel. XGBoost biedt hoogwaardige geoptimaliseerde, schaalbare en snel te implementeren gradient boosting algoritmes. Met deze algoritmes kunnen zowel classificatie als regressie vraagstukken opgelost worden.

Theano

Theano is een package waarmee je wiskundige vergelijkingen kunt definiëren, optimaliseren en evalueren. Dit speciaal voor multidimensionale NumPy arrays.

Met Theano is het mogelijk om dezelfde reken snelheden te behalen als met C bij vraagstukken met grote datasets. Het is zelfs mogelijk om betere prestaties te bereiken wanneer gebruik gemaakt wordt van GPU (graphics processing unit ) functionaliteit. Theano is een Griekse naam die goddelijk betekent.

Theano wordt vooral toegepast wanneer aan grote datasets wordt gerekend en snelheidsverbeteringen wenselijk zijn, voor het stabiliseren van onstabiele numerieke vergelijkingen en voor het automatisch genereren van symbolische diagrammen bij het berekenen van gradients.

TensorFlow

TensorFlow is een package wat geschikt is voor het verrichten van numerieke berekeningen en machine learning op grote schaal.

De naam TensorFlow is een verwijzing naar flow in tensoren: de generalisatie van vectoren en matrices. Het is ontwikkeld door Google en maakt een diversiteit aan machine learning en deep learning modellen en algoritmes beschikbaar.

Een essentieel onderdeel van TensorFlow is het multi-level nodes system, waarmee neural networks modellen op grote datasets snel getraind kunnen worden. Dit is de kracht achter de stemherkenning en objectidentificatie in afbeeldingen bij Google.

Met TensorFlow kunnen deep neural networks opgebouwd worden voor bijvoorbeeld handschriftherkenning, objectherkenning en tekstvertaling.

Keras

Keras is een package waarmee neural network machine learning algoritmes gemaakt kunnen worden.

Keras is een Grieks woord wat hoorn betekent. Keras is minimalistisch en duidelijk opgezet met een hoge mate van uitbreidingsmogelijkheden. Keras maakt gebruik van de packages Theano of TensorFlow als backend. Door de minimalistische opzet is het snel toe te passen en relatief eenvoudig om mee te experimenteren.

Ondanks de minimalistische opzet is het erg krachtig voor serieus modelleerwerk.

Het algemene idee van Keras is gebaseerd op layers (gelaagdheid), waar alles omheen gebouwd is. De data wordt gekenmerkt als tensoren (generalisatie van vectoren en matrices), waarbij in het model de eerste laag verantwoordelijk is voor inputs, de laatste laag voor de outputs, en het werkelijk bepalende model hiertussen.

PyTorch

PyTorch is een groot framework waarmee data transformaties als in NumPy verricht kunnen worden, maar dan binnen een GPU omgeving. Verder biedt het deep learning functionalities met hierbij de uitgangspunten flexibiliteit en snelheid.

Het is gebaseerd op de in C geschreven applicatie Torch, een deep learning library. Data wordt als tensoren behandeld en kan als NumPy arrays aangeleverd worden.

PyTorch is te gebruiken om neural network modellen op te bouwen voor bijvoorbeeld tekstherkenning of beeldherkenning.

Python packages voor natural language processing

NLTK

NLTK is een platform waarmee natural language processing taken verricht kunnen worden. Met NLTK kan tekst op meerdere manieren geanalyseerd en verwerkt worden, getagd worden, en kan er bijvoorbeeld informatie uit gefilterd worden. NLTK staat voor de afkorting Natural Language Toolkit. Het wordt veelal gebruikt voor prototyping en onderzoek.

SpaCy

SpaCy is een natural language processing omgeving die in Cython is geschreven, een C uitbreiding van Python. Het biedt veel voorbeelden, goede API documentatie en demo applicaties.

Verder support het bijna 30 talen, is deep learning geïntegreerd en streeft het naar robuustheid en nauwkeurigheid. SpaCy is in staat om gehele documenten te verwerken zonder dat deze eerst opgedeeld moeten worden.

Gensim

Gensim is een package om semantische analyses, topic modeling en vector-space modeling te verrichten.

Gensim maakt gebruik van NumPy en SciPy. Met Gensim kunnen populaire natural language processing algoritmes zoals word2vec geïmplementeerd worden. Verder kan met fasttext op efficiënte wijze woordgebruik geleerd worden.

Hiermee is Gensim in staat om zo makkelijk mogelijk met minimale menselijke interactie semantische informatie uit ruwe, ongestructureerde data te ontsluiten.

Wil je nog veel meer leren over de mogelijkheden van Python en samenwerken met andere geïnteresseerden en goede trainers? Schrijf je dan in voor onze Python cursus voor data science en vergroot je vaardigheden gecombineerd met mooie voorbeelden en praktijkcases.

by: