A gallery of interesting Jupyter Notebooks

This page is a curated collection of Jupyter/IPython notebooks that are notable. Feel free to add new content here, but please try to only include links to notebooks that include interesting visual or technical content; this should not simply be a dump of a Google search on every ipynb file out there.

Important contribution instructions: If you add new content, please ensure that for any notebook you link to, the link is to the rendered version using nbviewerarrow-up-right, rather than the raw file. Simply paste the notebook URL in the nbviewer box and copy the resulting URL of the rendered version. This will make it much easier for visitors to be able to immediately access the new content.

Note that Matt Davisarrow-up-right has conveniently written a set of bookmarklets and extensionsarrow-up-right to make it a one-click affair to load a Notebook URL into your browser of choice, directly opening into nbviewer.

Table of Contents

Entire books or other large collections of notebooks on a topic

Introductory Tutorials

Programming and Computer Science

Statistics, Machine Learning, and Data Science

Mathematics, Physics, Chemistry, Biology

Earth Science and Geo-Spatial data

Linguistics and Text Mining

Signal Processing

Engineering Education

Scientific computing and data analysis with the SciPy Stack

General topics in scientific computing

Social data

Psychology and Neuroscience

Machine Learning, Statistics and Probability

Physics, Chemistry and Biology

Economics and Finance

Earth science and geo-spatial data

Data visualization and plotting

Mathematics

Signal and Sound Processing

Natural Language Processing

Pandas for data analysis

Note that in the 'collections' section above there are also pandas-related links, such as the one for an 11-lesson tutorialarrow-up-right.

General Python Programming

Notebooks in languages other than Python

These are notebooks that use [one of the IPython kernels for other languages](IPython kernels for other languages):

Julia

The IPython protocols to communicate between kernels and clients are language agnostic, and other programming language communities have started to build support for this protocol in their language. The Julia team has created IJuliaarrow-up-right, and these are some Julia notebooks:

Haskell

There exists a Haskell kernel for IPython in the IHaskell projectarrow-up-right.

OCaml

iocamlarrow-up-right is an OCaml kernel for IPython

Ruby

Similar to the Julia kernel there exists also a Ruby kernelarrow-up-right for IPython.

The interactive plotting library Nyaplotarrow-up-right has some case studies using IRuby:

Perl

F#

C#

Javascript

Miscellaneous topics about doing various things with the Notebook itself

Reproducible academic publications

This section contains academic papers that have been published in the peer-reviewed literature or pre-print sites such as the ArXivarrow-up-right that include one or more notebooks that enable (even if only partially) readers to reproduce the results of the publication. If you include a publication here, please link to the journal article as well as providing the nbviewer notebook link (and any other relevant resources associated with the paper).

  1. Discovery of Gravitational Waves by the LIGO collaborationarrow-up-right. That page, from the LIGO Open Science Center, contains multiple notebooks for various datasets corresponding to different events; this binderarrow-up-right lets you run the code right away. More details on the GW150914arrow-up-right event as well as the original main Physical Review Letters paper, "Observation of Gravitational Waves from a Binary Black Hole Merger"arrow-up-right.

  2. Predicting Coronal Mass Ejections Using Machine Learning Methodsarrow-up-right by Monica Bobra and Stathis Ilonidis (Astrophysical Journal, 2016). An IPython notebookarrow-up-right, which reproduces all the results, has been permanently deposited in the Stanford Digital Repositoryarrow-up-right.

  3. The Paper of the Futurearrow-up-right by Alyssa Goodman et al. (Authorea Preprint, 2017). This article explains and shows with demonstrations how scholarly "papers" can morph into long-lasting rich records of scientific discourse, enriched with deep data and code linkages, interactive figures, audio, video, and commenting. It includes an interactive d3.js visualization and has an astronomical data figure with an IPYthon Notebook "behind" it.

  4. Reply to 'Influence of cosmic ray variability on the monsoon rainfall and temperature': a false-positive in the field of solar-terrestrial researcharrow-up-right by Benjamin Lakenarrow-up-right, 2015. Reviewed article will appear in JASTP. The IPython notebookarrow-up-right reproduces the full analysis and figures exactly as they appear in the article, and is available on Github: link via figsharearrow-up-right.

  5. An open RNA-Seq data analysis pipeline tutorial with an example of reprocessing data from a recent Zika virus studyarrow-up-right, by Zichen Wangarrow-up-right and Avi Ma'ayanarrow-up-right. (F1000Research 2016, 5:1574). An IPython notebookarrow-up-right was used to perform the proposed RNA-Seq pipeline using public gene expression data of human cells after Zika virus infection. The computational pipeline is also version controlled and Dockerized available herearrow-up-right.

  6. Automatic segmentation of odor maps in the mouse olfactory bulb using regularized non-negative matrix factorizationarrow-up-right, by J. Soelter et al. (Neuroimage 2014, Open Access). The notebookarrow-up-right allows to reproduce most figures from the paper and provides a deeper look at the data. The full code repositoryarrow-up-right is also available.

  7. A Workflow for Characterizing Nanoparticle Monolayers for Biosensors: Machine Learning on Real and Artificial SEM Imagesarrow-up-right, Adam Hughes, Zhaowen Liu, Maryam Raftari, Mark. E Reeves. Notebooks are linked in Table 1 in the text.

  8. Visualizing 4-Dimensional Asteroidsarrow-up-right, in Scientific American (by Jake VanderPlas)

  9. Summary Analysis of the 2017 GitHub Open Source Surveyarrow-up-right by Stuart Geigerarrow-up-right. Preprint in SocArXiv, June 2017. doi:10.17605/OSF.IO/ENRQ5. Paper is derived from a notebook converted to LaTeX with nbconvert. Notebook and materials at: OSFarrow-up-right, GitHubarrow-up-right, nbviewerarrow-up-right

  10. An on-chip architecture for self-homodyned nonclassical lightarrow-up-right, quant-ph ArXiV preprint, Nov 2016, by Fischer et al. A supporting notebook for all calculationsarrow-up-right included in the ArXiV submission.

  11. A nested sampling code for targeted searches for continuous gravitational waves from pulsarsarrow-up-right, gr-qc ArXiV preprint, May 2017, by Pitkin et al. Complete repoarrow-up-right with supporting notebooks and sources on GitHub.

  12. Nonsinusoidal beta oscillations reflect cortical pathophysiology in Parkinson's diseasearrow-up-right, in Journal of Neuroscience by Cole et al. A repo with companion notebooksarrow-up-right with all necessary data is available to reproduce all figures.

  13. Cycle-by-cycle analysis of neural oscillationsarrow-up-right, in bioRxiv by Cole & Voytek. A repo with companion notebooksarrow-up-right with all necessary data is available to reproduce all figures. This repo also links to the related useful library, neurodsparrow-up-right, which contains notebooks of tutorials.

  14. pyKNEEr: An image analysis workflow for open and reproducible research on femoral knee cartilagearrow-up-right, a preprint by S. Bonaretti et al. Jupyter notebooks are used as a graphical user interface for medical image processing and analysis. The paper is interactive, with links to data, software, and documentation throughout the text. Every figure caption contains links to fully reproduce graphs.

Data-driven journalism

Whimsical notebooks

Videos of IPython being used in the wild

Of course the first thing you might try is searching for videos about IPython (1900 or so by last count on Youtube) but there are demonstrations of other applications using the power of IPython but are not mentioned is the descriptions. Below are a few such:

Accessing and programing a IBM quantum computer via notebooks

  • Githubarrow-up-right notebook example (scroll down) illustrating how to use Qiskit and access the IBMQ quantum computers.

Reference : https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooksarrow-up-right

Last updated

Was this helpful?