Jupyter Notebook
Contents
3. Jupyter Notebook#
Tip
Deze pagina is gemaakt uit een Jupyter Notebook. Je maakt de code-cellen in deze pagina actief via de “Live Code” button onder het raketje hierboven; wacht dan even tot deze activering “ready” is. Via de “Binder” button daarboven kun je deze pagina in de Jupyter Notebook UI bekijken en bewerken.
Samenvatting
Een Jupyter Notebook bestaat uit een reeks cellen, in twee soorten:
Markdown cellen, met tekst, formules, figuren, e.d.
executeerbare code-cellen, in Python, SQL, Elm, enz.
Je kunt de code-cellen aanpassen en opnieuw uitvoeren.
Je gebruikt Jupyter Notebook als een web-applicatie in de browser, verbonden met een server voor de Python, SQL, enz. kernel(s).
3.1. Wat is een Jupyter Notebook?#
Een Jupyter Notebook bestaat uit cellen; de belangrijkste soorten zijn Markdown (tekst) cellen en code-cellen. Deze cel is een Markdown cel. Zoals je ziet kan deze formules bevatten, zoals \(e = m \cdot c^2\), of
Ook figuren zijn mogelijk.
De cel hieronder is een code-cel (in Python). Het resultaat van de uitvoering van de cel zie je onder de cel.
def fac(n):
if n == 0:
return 1
else:
return n * fac(n - 1)
fac(5)
120
Opdracht. Selecteer de code-cel hierboven en pas de laatste regel aan, bijvoorbeeld: fac(10)
. Voer de code-cel dan uit: in een “Live Code” cel gebruik je daarvoor de “Run” knop in de cel; in het Notebook interface selecteer je de cel en toets je “Shift-Enter” in.
Doordat je allerlei Python-libraries kunt gebruiken, kun je bijvoorbeeld ook grafieken maken.
Voorbeeld van een grafiek gemaakt met Python
import matplotlib.pyplot as plt
import numpy as np
# 100 linearly spaced numbers
x = np.linspace(-np.pi,np.pi,100)
# the function, which is y = sin(x) here
y = np.sin(x)
# setting the axes at the centre
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['left'].set_position('center')
ax.spines['bottom'].set_position('center')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# plot the function
plt.plot(x,y, 'b')
# show the plot
plt.show()
Opdracht. (Zorg dat je “Live code” cellen hebt.) Vervang in de code np.sin(x)
door np.sin(2*x)
. Wat verwacht je? Controleer of het klopt door de cel uit te voeren.
3.2. Kernels#
Een notebook gebruikt voor het uitvoeren van de code-cellen een kernel in een bepaalde programmeertaal. Er zijn kernels voor allerlei programmeertalen, bijvoorbeeld Python, R, JavaScript (en p5.js), Elm (functioneel programmeren), SQLite (databases), en nog veel meer. De Jupyter-aanpak is vooral geschikt voor interpreter-talen met een Read-Execute-Print-Loop (REPL). Een vertaalde taal als Java is hiervoor minder geschikt, hoewel Elm een voorbeeld geeft hoe dit kan.
Jupyter Notebook werkt als een web-applicatie: de User Interface werkt in de browser, het rekenwerk wordt gedaan op de server. Dit betekent dat je ook veel voorbeelden tegenkomt van het gebruik van Jupyter Notebook “in the cloud”. Dit heeft als grote voordeel dat gebruikers geen software hoeven te installeren.
Je kunt overigens Jupyter Notebook ook op je eigen computer installeren. Je gebruikt dan nog steeds de browser voor de User Interface. Je eigen computer fungeert dan als (web)server voor het uitvoeren van de kernel(s).
3.3. Enkele tips voor het werken met notebooks#
Restart kernel and clear all outputs. Soms is door de experimenten met code-cellen de toestand verward geworden; of is op een of andere manier de kernel uit de pas geraakt met het notebook. In dat geval kun je de kernel herstarten, via het Kernel menu bovenin.
Voer de cellen in de juiste volgorde uit. De volgorde in het notebook is ook de volgorde waarin de cellen uitgevoerd moeten worden. Als je de uitvoering van een cel overslaat kan het zijn dat je een onderdeel van een berekening mist.