Computational Narratives with Jupyter Notebook

You’ve completed a heroic analysis of a monumental set of data and uncovered some very interesting findings. Now you just need to explain everything you did and share it with everyone who needs to see it.

At least initially, most people try to solve this problem with an unholy combination of READMEs and PowerPoint slides. And this may be good enough for a reasonably small analysis with a reasonably small audience. However, both of these formats fall well short in terms of interactivity, reproducibility, and narrative flow because they are just too far removed from the actual software you used in your analysis.

Researchers at public and private institutions all over the world are increasingly using Jupyter Notebook to solve these problems. The notebooks can even be published as stand-alone applications.

Jupyter Notebook Basics

Jupyter Notebook is a tool for exploring data, developing and testing algorithms, and constructing computational narratives. It allows you to edit and execute code, generate visualizations, and provide contextual explanatory text.

Jupyter is primarily used by data scientists to perform data transformations, numerical simulations, and statistical modeling, and, importantly, to share their work. It was originally developed to interactively run IPython code, but it has since been extended to support over 80 different languages. Your favorite language is probably included.

Installation is also very simple. Just follow the instructions here.

In order to showcase some of the basic functionality of a Jupyter notebook, I created a simple example. I have made the source notebook available here. Below are some screenshots that show the notebook in action.

prime number snippet

pandas dataframe

pandas dataframe

Other Resources

One of the best aspects of Jupyter is the vast and vibrant user community. There are people in every conceivable area of research using Jupyter to facilitate their investigations and publish their results. Here is a small sampling:

There are also many resources for learning both Jupyter and scientific computing with Python. A great place to start is nbviewer.jupyter.org.

My Go-To Tool

The Jupyter Notebook is a useful tool for any computational investigation. This is especially true for those investigations that need to be shared with collaborators, stakeholders, or bosses. Have you found any notebooks that interest you?