Ga naar hoofdinhoud

Waarom wetenschappers Python zouden moeten gebruiken voor wetenschappelijke computing

Ontdek de reikwijdte van Python voor onderzoek, waarom wetenschappers Python zouden moeten gebruiken voor wetenschappelijke computing en hoe de Python-community wetenschappelijk onderzoek doeltreffend kan ondersteunen.
Bijgewerkt 2 okt 2026  · 12 min lezen

Verken met AI

ChatGPTClaudePerplexity

Dit jaar op PyCon 2017 werden twee keynotes gegeven door mensen uit de wetenschappelijke Python-community: dr. Jake VanderPlas sprak over waarom wetenschappers Python omarmd hebben en zouden moeten blijven omarmen; dr. Kathryn Huff sprak over hoe de Python-community de wetenschappelijke gemeenschappen kan helpen en waarom die dat zou moeten doen. Deze twee talks samen geven een holistisch en samenhangend beeld van hoe wetenschappelijk onderzoek en Python-programmeren elkaar aanvullen, waarom veel werkende wetenschappers vandaag de dag het best af zijn met Python, en waarom en hoe de Python-community wetenschappelijk onderzoek doeltreffend kan ondersteunen.

De onverwachte doeltreffendheid van Python in wetenschappelijke computing

Jake VanderPlas is astronoom aan het eScience Institute van de Universiteit van Washington in Seattle. Hij is ook actief in de bredere wetenschappelijke Python-community en droeg bij aan SciPy, scikit-learn en altair, naast andere Python-pakketten.

De meeste mensen stellen zich astronomen voor aan de voet van gigantische telescopen, turend door lenzen, maar Jake verzekerde ons dat de meeste astronomen in hun professionele leven nog nooit door een telescoop hebben gekeken en het grootste deel van hun dataverzameling doen via databasequeries. Maar databases zijn slechts het topje van de ijsberg als het gaat om de computationele vaardigheden van astronomen, die noodzakelijk zijn door de taken waar ze voor staan, en Jake gaf verschillende verhelderende voorbeelden. Neem bijvoorbeeld de volgende visualisatie van het TRAPPIST-1-exoplaneetstelsel:

scientific computing python

Het is verleidelijk om te denken dat dit een echte, fotorealistische afbeelding is, maar het is in werkelijkheid een artistieke interpretatie: het is niet de ruwe data. Het bestaan van de planeet werd afgeleid door een verduisterende ster en door statistische modellering van zo’n systeem op de volgende en daaropvolgende data (in de vorm van een afbeelding, data van Ethan Kruse):

python for research

Hoe zijn al deze inferentie en statistische analyses gedaan? In Python, natuurlijk. En via een ‘ongelooflijk verfijnde statistische modellering van het systeem’; bovendien, het vinden van dit soort systemen, zo zei Jake, ‘komt neer op het schrijven van statistische code in een verfijnde data-analysepijplijn’.

Dit is een van de vele wetenschappelijke projecten (in de astronomie) die Jake liet zien en die de programmeertaal Python gebruiken in hun dataverwerking en analytische pijplijn. Opvallend is dat al deze projecten niet alleen zijn geschreven in een open source-programmeertaal, maar dat hun code ook op GitHub staat, bijvoorbeeld Kepler en JWST. Laatstgenoemde probeert gassen in de atmosfeer van andere planeten te ontdekken om de chemische samenstelling te achterhalen ter ondersteuning van het vinden van chemische handtekeningen van andere levensvormen — deze projecten zijn in Python, gehost op GitHub en gebruiken Jupyter-notebooks, naast andere tools.

Zou dit anekdotisch kunnen zijn, dus een handvol Python-projecten die eerder uitzondering dan regel zijn? Nou, niet in de astronomie. Jake had een analyse gedaan die liet zien dat publicaties met Python gestaag zijn toegenomen:

python scientific computing

Kijk eens naar die Python-hockeystick! We hebben dus vastgesteld dat wetenschappers Python steeds vaker gebruiken, maar waarom gebruiken ze Python?

4 argumenten om Python te gebruiken in wetenschappelijke computing

Jake vroeg: ‘Waarom is Python zo’n effectieve tool in de wetenschap?’

1. Interoperabiliteit met andere talen.

Python als lijm: historisch gezien hadden veel werkende wetenschappers onhandige, complexe en eigenlijk belachelijke datapijplijnen om van experiment en/of data tot communiceerbare resultaten te komen, met databasequeries, commandline-foefjes, het gebruik van gespecialiseerde of propriëtaire software, tot en met datavisualisatietools. Jake VanderPlas citeerde Dave Beazley, deels omdat Dave het raak verwoordde:

‘Wetenschappers... werken met een breed scala aan systemen, van simulatiecodes, data-analysetools, databases, visualisatietools en huis-tuin-en-keukensoftware — elk met weer andere interfaces en bestandsformaten. Hierdoor kan een wetenschapper veel tijd kwijt zijn aan het simpelweg proberen al deze componenten op de een of andere manier samen aan de praat te krijgen...’

En Python kan met de meeste tools samenwerken die je in wetenschappelijk onderzoek maar zou willen gebruiken: het bindt, het is de lijm. Zoals Jake zei: Python wordt gebruikt om ‘de ratjetoe aan tools waar mensen mee werken aan elkaar te lijmen; high-level Python-syntaxis wikkelt deze low-level C/Fortran-bibliotheken in’.

2. “Batterijen inbegrepen” + modules van derden

Een andere reden dat onderzoekende wetenschappers naar Python zijn overgestapt (en waarom degenen die dat nog niet hebben gedaan dat “zouden moeten”) is dat

  1. het veel “batterijen inbegrepen” heeft en
  2. voor wat dat niet heeft, er een gigantisch wetenschappelijk Python-ecosysteem (SciPy) beschikbaar is als modules van derden.

Met de “batterijen inbegrepen” kun je het web scrapen, webservers starten, met bestandssystemen en databases werken, JSON lezen en nog veel meer!

De modules van “derden” zijn echter waar het echt spannend wordt. Voorbeelden zijn, maar zeker niet beperkt tot:

  • NumPy voor array-computing;
  • IPython en Jupyter als IDE boven op Python, en als middel om wetenschappelijke documenten te schrijven en onderzoek/resultaten te communiceren en samen te werken;
  • Numba en Dask voor schalen en gedistribueerd rekenen;
  • Pandas voor DataFrames;
  • Matplotlib en Bokeh (bijvoorbeeld) voor datavisualisatie (er is een compleet ecosysteem van dataviz-bibliotheken binnen Python zelf);
  • Scikit-learn voor machine learning;
  • NetworkX voor het creëren, manipuleren en bestuderen van complexe netwerken;
  • Scikit-image voor beeldverwerking;
  • PyMC voor Markov Chain Monte Carlo;
  • De lijst gaat door.

Zoals Jake zei: “als je een probleem hebt om op te lossen, kun je hoogstwaarschijnlijk een bibliotheek vinden die helpt — en hij staat waarschijnlijk op GitHub!”

research with python

3. Eenvoud en dynamisch karakter

Python is relatief eenvoudig te schrijven, zeker vergeleken met talen als C. Zoals Jake zei: ‘In Python, zeker als je bijvoorbeeld uit C komt, schrijf je wat je wilt dat er gebeurt en het gebeurt; het is een beetje alsof je uitvoerbare pseudocode schrijft’.

Hij citeerde ook Perry Greenfield, die zei: ‘Python is een taal die erg krachtig is voor ontwikkelaars, maar ook toegankelijk voor astronomen. Die twee groepen mensen dezelfde tools laten gebruiken, levert volgens mij een enorm voordeel op dat niet altijd wordt gezien of genoemd.’

Dankzij tools als IPython en Jupyter-notebooks is er bijvoorbeeld een prachtige mogelijkheid voor dynamisch coderen en verkennende, iteratieve data-analyse on the fly. Dit zorgt voor een lage instapdrempel omdat wetenschappelijk coderen zelf niet-lineair en verkennend is. Jake merkte op dat sommigen klagen of vinden dat deze tools traag zijn, maar voor wetenschappelijk onderzoek is de ontwikkelsnelheid cruciaal, niet de uitvoersnelheid, wat deze tools ideaal maakt.

4. Open ethos past goed bij wetenschap

Open source-software heeft een ethos dat goed aansluit bij de vereiste openheid van wetenschappelijk onderzoek (misschien zelfs meer dan veel wetenschappelijk onderzoek zelf). We komen hier uitgebreider op terug bij de bespreking van Katy Huffs keynote, maar wetenschap vindt niet alleen plaats in gepubliceerde artikelen; wetenschap zit in het resultaat én de instructies/protocollen en het vermogen om het resultaat te reproduceren; precies wat open source-softwareontwikkeling nastreeft. Jake gaf het volgende citaat van Buckheit en Donoho (1995, een parafrase van Jon Claerbout)

Een artikel over een computationeel resultaat is reclame, geen wetenschap. De echte wetenschap is de volledige software-omgeving, code en data, die het resultaat heeft opgeleverd.’ — Buckheit en Donoho, 1995

Wat open source-software en het ethos van het (wetenschappelijke en bredere) Python-ecosysteem bieden, is een kader dat ons hopelijk helpt uit de crisis rond wetenschappelijke reproduceerbaarheid: ‘reproduceerbaarheid oplossen draait om open science’ en het collaboratieve, peer-reviewed en op GitHub publiceerbare karakter van wetenschappelijk onderzoek in het Python-ecosysteem is cruciaal voor die openheid in de wetenschap. Als ik wil bekijken hoe de zwaartekrachtsgolven (die Einstein voorspelde) in 2016 werden gedetecteerd, hoef ik alleen maar naar de LIGO-repository hier te gaan. En als je een van de steeds grotere groep astronomen bent die het Astropy-pakket gebruikt voor hun onderzoek, dan vind je de code en de community die het maakt hier. Het feit dat het zo open is, is een direct gevolg van de community die het open source- en open science-ethos uit de bredere Python-community heeft gemodelleerd. Bekijk de tabel voor wat Jake (aangepast van Perry Greenfield) vindt dat de astronomiecommunity van de Python-community heeft geleerd:

Doe het voor de wetenschap

“Ik ben hier om jullie kracht in te zetten voor mijn eigen doelen”, zei dr. Kathryn Huff tegen de PyCon-community, en ze gaf vervolgens een overtuigend betoog over hoe en waarom de Python-programmeercommunity in brede zin de wetenschap kan helpen de wereld te redden. Haar keynote gaf een gedetailleerd en bevlogen betoog waarom open source-softwareontwikkeling in het algemeen, en Python in het bijzonder, zo effectief is gebleken in wetenschappelijke computing en wetenschappelijk onderzoek en praktijk als geheel. Ze ging nog een stap verder en liet talloze plekken zien waar de Python-programmeer- en ontwikkelcommunity haar Python-vaardigheden kan inzetten om de wetenschappelijke gemeenschap te helpen en de wereld te redden. Als je denkt dat water een serieus probleem is voor de mensheid, of gezondheid of energie, dan had Kathryn projecten en GitHub-repository’s met open issues klaarstaan waar je zo in kon duiken om te helpen. Ze gaf tientallen voorbeelden van open projecten en pakketten met issues waaraan je kunt bijdragen.

Kathryn (Katy) is kernenergie-ingenieur, al jarenlang bijdrager aan de SciPy-community, betrokken bij het Journal of Open Source Software en besteedt veel van haar tijd aan The Hacker Within en de Software en Data Carpentries, die wetenschappers helpen beter met computers te werken en ontdekkingen te doen, waardoor de reproduceerbaarheid en het gemak waarmee wetenschappers computers gebruiken verbeteren.

Katy’s missie is om te verbeteren hoe kernenergie wordt geproduceerd; en wat is haar favoriete tool? Python! Voordat ze inging op de vele manieren waarop de Python-community de wetenschappelijke onderzoeksgemeenschap kan helpen, gaf Katy een sterk betoog waarom dit eigenlijk nodig is. Katy citeerde R. K. Merton (1945) en beschreef wetenschap als iets dat rigoureuze, gestructureerde controle door de community vereist (een mooie werkdefinitie van hoe georganiseerd scepticisme eruitziet); dit zijn onmiskenbaar kwaliteiten van de open source Python-community.

Katy maakte het belang hiervan duidelijk door de basisprincipes van wetenschap op te sommen en helder te maken dat open source-softwareontwikkeling het beter heeft gedaan dan welke community dan ook in het vasthouden aan deze principes sinds de Pythagoreïsche tijd (6e eeuw v.Chr.). Deze basisprincipes van wetenschap zijn:

  • peerreview
  • scepticisme
  • transparantie
  • naamsvermelding
  • verantwoording
  • samenwerking
  • impact

Computers zouden wetenschappers “moeten” helpen om het volgende te doen:

Wat is dan de uitdaging om meer wetenschappers open source-software zoals Python te laten gebruiken zodat computers hen kunnen helpen?

  • Wetenschappers zijn niet getraind om computers effectief te gebruiken;

Daarom Katy’s oproep aan de Python-community:

“Ik wil jullie erbij betrekken.”

En zo’n mobilisatie is nog een reden voor werkende onderzoekers om Python te gebruiken: er is een enorme community van open source-programmeurs waar ze een beroep op kunnen doen. Katy is, zoals gezegd, ook betrokken bij een andere aanpak: werken aan het opleiden van werkende wetenschappers in het gebruik van computers voor hun werk. Er zijn verschillende van zulke programma’s. Ik raad alle werkende wetenschappers aan om Software Carpentry en Data Carpentry te bekijken om te zien of ze jouw groep, afdeling of universiteit kunnen helpen (antwoord: als je rekent, dan hoogstwaarschijnlijk wel).

Hoe stelt dr. Katy Huff vervolgens voor dat programmeurs helpen? In vier eenvoudige stappen:

  1. Wees nieuwsgierig;
  2. Kies een project;
  3. Draag bij aan de wetenschap;
  4. Red de wereld.

Waarom Python voor onderzoek?

  • Het Python-ecosysteem bevat een volwassen en nog steeds evoluerende verzameling computationele tools voor werkende wetenschappers.
  • Wetenschappers stromen in groteren getale naar Python vanwege Python’s
    • interoperabiliteit met andere talen;
    • “batterijen inbegrepen” en modules van derden voor bijna alles wat je zou willen doen;
    • eenvoud en dynamisch karakter
    • open ethos dat goed past bij wetenschap
  • De wetenschappelijke Python-community groeit en de bibliotheken worden voortdurend doorontwikkeld; de community is open;
  • De open source-ontwikkelcommunity houdt zich meer dan welke andere community ook aan de basisprincipes van wetenschappelijk onderzoek; deze principes zijn:
    • peerreview
    • scepticisme
    • transparantie
    • naamsvermelding
    • verantwoording
    • samenwerking
    • impact
  • Er is een bredere community van Python-programmeurs die geen wetenschappers zijn en willen bijdragen aan de impact van Python op de wetenschap en de wereld en aan onderwerpen waarin ze geloven; om de woorden van Perry Greenfield een tikje te verdraaien,

‘Python is een taal die erg krachtig is voor ontwikkelaars, maar ook toegankelijk voor [wetenschappers]. Die twee groepen mensen dezelfde tools laten gebruiken, levert volgens mij een enorm voordeel op dat niet altijd wordt gezien of genoemd’.

Als je gedachten, reacties en/of overpeinzingen hebt, neem dan gerust contact met me op via Twitter: @hugobowne.

Onderwerpen
Python
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken