- In 2014, Fernando Pérez announced a spin-off project from IPython called Project Jupyter, moving the notebook and other language-agnostic parts of IPython to Jupyter.
- The name “Jupyter” derives from Julia+Python+R, but today Jupyter kernels exist for dozens of programming languages.
- Galileo’s publication in a pamphlet in 1610 in Sidereus Nuncius, one of the first notebooks!
What are Jupyter notebooks?
Common use cases
- Experimenting with new ideas, testing new libraries/databases
- As an interactive development environment for code, data analysis and visualization
- Interactive work on HPC clusters
- Sharing and explaining code to colleagues
- Teaching (programming, experimental/theoretical science)
- Learning from other notebooks
- Keeping track of interactive sessions, like a digital lab notebook
- Supplementary information with published articles
- Slide presentations using Reveal.js
When not to use notebooks
- Less useful for large codebases
- More difficult to do automated testing on
- Tricky when it comes to non-linear execution of cells, discipline is needed
- We will discuss pitfalls later
Two case examples
Let us have a look at the analysis published together with the
discovery of gravitational waves. This
page lists the available analyses
and presents several options to browse them.
- A quick look at short segments of data can be found at
- The notebook can be opened and interactively explored
using Binder by clicking the “launch Binder” button.
- How does the Binder instance know which Python packages to load?
Researchers in the Stanford Activity Inequality Study measured daily
activity from cell phone tracking data for over 700,000 users in
different countries across the world.
For further inspiration, head over to the Gallery of interesting Jupyter Notebooks.