How are people using the Jupyter Notebook and IPython?


In [1]:
from IPython.display import display, Image, HTML
from talktools import website, nbviewer

Cam Davidson-Pilon's book

Cam Davidson-Pilon has written an entire book on Bayesian Statistics as a set of Jupyter+IPython Notebooks that are hosted on GitHub and viewed on https://nbviewer.jupyter.org.


In [2]:
website('http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/', width="100%")


Out[2]:

Kalman and Bayesian Filters in Python

Roger Labbe has written another book using notebooks on GitHub.


In [3]:
website("http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb",
       width="100%")


Out[3]:

Mining the Social Web

Matthew Russell has written an O'Reilly published book, Mining The Social Web, that includes Jupyter+IPython Notebooks for all examples.


In [4]:
Image("images/oreilly-socialweb.png", width="100%")


Out[4]:

Python for Signal Processing

Jose Unpingco has written a series of blog posts on Signal Processing Jupyter+IPython Notebooks. These blog posts were the basis of a full length book Python for Signal Processing published by Springer in 2013.


In [5]:
Image("images/p4sp.png", width="50%")


Out[5]:

Technical blogging

Jake Vanderplas at the University of Washington blogs using the IPython Notebook:


In [6]:
Image("images/jakevdp_sa.png", width="80%")


Out[6]:

Introduction to Applied Bioinformatics

Greg Caporaso is writing a course on Introduction to Applied Bioinformatics as a set of Jupyter notebooks on GitHub.


In [7]:
Image("images/iab-caporaso.png", width="80%")


Out[7]:

Quantopian Research Platform

Quantopian is a Python based algorithmic trading platform. Its research environment is based on the Jupyter Notebook and ties together premium data sources, backtesting with the full power of Python.


In [8]:
Image("images/quantopian-research.png", width="90%")


Out[8]:

Nature article about IPython/Jupyter

In the Fall of 2014, Nature published an article entitled Interactive notebooks: Sharing the code about the usage of the IPython/Jupyter Notebook in research. We worked with Nature and Rackspace to offer an interactive demo of the Notebook within the article (https://nature.tmpnb.org)


In [9]:
Image("images/nature-ipython.png", width="90%")


Out[9]:

Quantitative Economics

Thomas J. Sargent and John Stachurski have developed a web site and course Quantitative Economics using Python and Julia. Solutions are provided as Jupyter Notebooks.


In [10]:
Image("images/quant-econ.png", width="90%")


Out[10]:

Reinhart-Rogoff replication

Vincent Arel-Bundock has replicated the analysis of Herndon, Ash and Pollin as a Jupyter notebook. What if Reinhart and Rogoff had distributed their original analysis as a notebook?


In [11]:
website("http://nbviewer.ipython.org/github/vincentarelbundock/Reinhart-Rogoff/blob/master/reinhart-rogoff.ipynb")


Out[11]:

Peter Norvig

Peter Norvig (Director of Research at Google) has been using the Jupyter Notebook to explore interesting algorithmic problems. He began with a notebook inspired by a regular expression golf question from xkcd #1313:

Can I come up with an algorithm to find a short regex that matches the [presidential] winners and not the losers?


In [12]:
website('https://nbviewer.jupyter.org/url/norvig.com/ipython/xkcd1313.ipynb')


Out[12]:

This notebok spawned a huge amount of interest in this problem. A number of individuals started to interact with Peter over email about the algorithmic questions involved. This led to a second notebook on the topic:


In [13]:
website("https://nbviewer.jupyter.org/url/norvig.com/ipython/xkcd1313-part2.ipynb")


Out[13]:

The Notebook makes its easy to have detailed technical discussions involving code and data that are open and reproducible.

Data-driven journalism

The Notebook is being used in reproducible, data-driven journalism.

538

On April 1, 2014, Walter Hickey of 538, published an article entitled The Dollars-and-Cents Case Against Hollywood's Exclusion of Women about the Bechdel test, which provides a simple way to model the prominence of women in movies.


In [14]:
Image("images/538bechdeltest.png", width="80%")


Out[14]:

On April 7, 2014, Brian Keegan, a post-doctoral research fellow in computational social science Northeastern University, published a blog post entitled The Need for Openness in Data Journalism. Along with the blog post, he published a replication of Walter Hickey's analysis using the Jupyter Notebook and nbviewer.


In [15]:
website("https://nbviewer.jupyter.org/github/brianckeegan/Bechdel/blob/master/Bechdel_test.ipynb")


Out[15]:

This caught the attention of Walter Hickey and led to a follow up article on 538 along with the posting of Walter Hickey's data and code on GitHub.

BuzzFeed

On August 7, 2014, BuzzFeed published an article by John Templon, entitled Tax Collection Scams Skyrocket. Here is their notebook that replicates the analysis:


In [16]:
Image("images/buzzfeed-taxscam.png", width="80%")


Out[16]:

In [17]:
website("https://nbviewer.jupyter.org/github/buzzfeednews/2014-08-irs-scams/blob/master/notebooks/irs-scams.ipynb")


Out[17]:

On August 20, 2014, BuzzFeed published an article by Jeremy Singer-Vine, entitled The Ferguson Area Is Even More Segregated Than You Probably Guessed. Here is their notebook that replicates the analysis:


In [18]:
Image("images/buzzfeed-ferguson.png", width="90%")


Out[18]:

In [19]:
website('http://nbviewer.ipython.org/github/BuzzFeedNews/2014-08-st-louis-county-segregation/blob/master/notebooks/segregation-analysis.ipynb')


Out[19]:

Reproducible academic publications

Publications in traditional academic journals are being accompanied by notebooks that reproduce and expand upon the main computational results of the work. See this section of the Notebook Gallery for a full list. Here is one notable example from Nature Genetics by Gross et al., titled Multi-tiered genomic analysis of head and neck cancer ties TP53 mutation to 3p loss


In [20]:
Image("images/nature-genetics.png", width="90%")


Out[20]:

The authors published a GitHub repository with notebooks that replicate the results:


In [21]:
website("https://nbviewer.jupyter.org/github/theandygross/TCGA/tree/master/Analysis_Notebooks/")


Out[21]:

Teaching

The Jupyter Notebook is being used for lecture materials and student work in a large number of university and high school courses on scientific computing and data science. Most of these courses are being developed publicly on GitHub. Here are a few of the ones we know about:


In [22]:
%%file courses.csv
"Course","University","Instructor"
"Python for Data Science","UC Berkeley","Josh Bloom"
"Introduction to Data Science","UC Berkeley","Michael Franklin"
"Working with Open Data","UC Berkeley","Raymond Yee"
"Introduction to Signal Processing","UC Berkeley","Miki Lustig"
"Data Science (CS 109)","Harvard University","Pfister and Blitzstein"
"Practical Data Science","NYU","Josh Attenberg"
"Scientific Computing (ASTR 599)","University of Washington","Jake Vanderplas"
"Computational Physics","Cal Poly","Jennifer Klay"
"Introduction to Programming","Alaskan High School","Eric Matthes"
"Aerodynamics-Hydrodynamics (MAE 6226)","George Washington University","Lorena Barba"
"HyperPython: hyperbolic conservation laws","KAUST","David Ketcheson"
"Quantitative Economics","NYU","Sargent and Stachurski"
"Practical Numerical Methods with Python","4 separate universities + MOOC","Barba, et al."
"Data Science","Columbia University - Lede Program", "Chris Wiggins"
"Introduction to Applied Statistics (STATS 191)","Stanford University","Jonathan Taylor"
"Methods for Applied Statistics (STATS 306B)","Stanford University","Jonathan Taylor"


Overwriting courses.csv

In [23]:
import pandas

In [24]:
df = pandas.read_csv('courses.csv'); df


Out[24]:
Course University Instructor
0 Python for Data Science UC Berkeley Josh Bloom
1 Introduction to Data Science UC Berkeley Michael Franklin
2 Working with Open Data UC Berkeley Raymond Yee
3 Introduction to Signal Processing UC Berkeley Miki Lustig
4 Data Science (CS 109) Harvard University Pfister and Blitzstein
5 Practical Data Science NYU Josh Attenberg
6 Scientific Computing (ASTR 599) University of Washington Jake Vanderplas
7 Computational Physics Cal Poly Jennifer Klay
8 Introduction to Programming Alaskan High School Eric Matthes
9 Aerodynamics-Hydrodynamics (MAE 6226) George Washington University Lorena Barba
10 HyperPython: hyperbolic conservation laws KAUST David Ketcheson
11 Quantitative Economics NYU Sargent and Stachurski
12 Practical Numerical Methods with Python 4 separate universities + MOOC Barba, et al.
13 Data Science Columbia University - Lede Program "Chris Wiggins"
14 Introduction to Applied Statistics (STATS 191) Stanford University Jonathan Taylor
15 Methods for Applied Statistics (STATS 306B) Stanford University Jonathan Taylor

The examples shown here of how the Jupyter Notebook is being used are merely representative. We maintain a longer gallery of interesting Notebooks that contains a curated list of notebooks on various topics.