|Original author(s)||Fernando Pérez|
|Developer(s)||NumFOCUS Foundation and Project Jupiter|
|Initial release||July 30, 2015(4.0)|
|Stable release||±](January 16, 2018 ) [|
|Type||Scientific computing software|
|License(s)||Revised BSD License|
Jupyter Notebook is an open-source "web application for interactive data science and scientific computing" with a few of the basic features of an electronic laboratory notebook (ELN). However, as opposed to the experiment documentation of an ELN, the pages created in the Jupyter Notebook act as a "computational record of [an interactive computing] session, interleaving executable code with explanatory text, mathematics, and rich representations of resulting objects." The developers state the notebook is useful for "data cleaning and transformation, numerical simulation, statistical modeling, machine learning, and much more."
The Jupyter Notebook is, at its core, based on IPython, which itself originates from several code projects mashed together by University of Colorado graduate student Fernando Pérez in 2001: ipython by Pérez, IPP by Janko Hauser, and LazyPython by Nathan Gray. Pérez noted:
When I found out about IPP and LazyPython I tried to join all three into a unified system. I thought this could provide a very nice working environment, both for regular programming and scientific computing: shell-like features, IDL/Matlab numerics, Mathematica-type prompt history and great object introspection and help facilities. I think it worked reasonably well, though it was a lot more work than I had initially planned.
On March 12, 2003, Python developer Jack Moffitt, an early contributor, packaged and released the initial public version of IPython (0.2.15pre3-0a). However, it wouldn't be until March 2011 that the infrastructure for IPython Notebook — the predecessor to Jupyter Notebook — would begin to be assembled and added to the project by contributor Brian E. Granger. The release of IPython 0.12 in December 2011 brought with it the first public version of IPython Notebook, described as "an interactive Python interface running in the browser" consisting of a "JSON based Notebook document format for recording and distributing Python code and rich text" combined with a "web-based user interface for authoring and running notebook documents."
As the IPython project marched on, however, users and developers alike began to realize that while features such as an interactive Python shell at the terminal and an associated kernel related the project to Python, other aspects of the project were language-agnostic, including the network protocols and associated clients as well as the Notebook file format and tools. On July 8, 2014, Pérez spoke of this issue at SciPy 2014, announcing that the language-neutral parts of the project would be rebranded as Jupyter — a mash-up of the Julia, Python, and R programming languages which are used often in scientific applications as well as a nod to astronomy and Galileo's notebooks. The Python-specific content would remain under the IPython name. By the time IPython 4.0 was released in August 2015, the separation of components was complete, and Jupyter Notebook was born (officially on July 30).
Features of Jupyter Notebook include:
- based on open standards
- support for over 40 programming languages
- data sharing support for multiple methods
- interactive widgets for manipulating visualizing real-time data
- support for big data exploration and analysis tools
- multiuser, centralized installation via JupyterHub
Installation requirements for Jupyter Notebook include:
- Python 3.3 or greater, or Python 2.7 -OR- Anaconda
Installation documentation can be found here.
Videos, screenshots, and other media
The following videos are available demoing Jupyter Notebook:
The following documentation exists:
Entities using Jupyter Notebook
According to the project page, the following entities use Jupyter Notebook and other Jupyter components:
Berkeley, Bloomberg, Bryn Mawr College, Cal Poly, Code Neuro, Continuum Analytics, George Washington University, Google, HHMI Janelia, IBM, Microsoft, N-Site, NASA, NetApp, Northwestern University, NYU, O'Reilley, Quantopian, Rackspace, SageMathCloud, Software Carpentry, University of Sheffield
Rossant, C. (2015). Learning IPython for Interactive Computing and Data Visualization (2nd ed.). Packt Publishing Limited. pp. 200. ISBN 9781783986989. https://www.packtpub.com/big-data-and-business-intelligence/learning-ipython-interactive-computing-and-data-visualization-sec.
- "Releases - jupyter/notebook". GitHub. GitHub, Inc. https://github.com/jupyter/notebook/releases. Retrieved 05 April 2016.
- "Jupyter Documentation". readthedocs.org. Project Jupiter. http://jupyter.readthedocs.org/en/latest/index.html. Retrieved 05 April 2016.
- "The IPython Notebook". ipython.org. IPython Development Team. 01 October 2014. Archived from the original on 02 January 2012. https://web.archive.org/web/20150102130622/http://ipython.org/ipython-doc/stable/notebook/notebook.html. Retrieved 05 April 2016.
- "Project Jupyter". jupyter.org. Project Jupyter. http://jupyter.org/index.html. Retrieved 05 April 2016.
- IPython Development Team (21 October 2012). "History: Origins". ipython.org. Archived from the original on 29 March 2013. https://web.archive.org/web/20130329232725/http://ipython.org/ipython-doc/stable/about/history.html. Retrieved 05 April 2016.
- "Fernando Perez". Berkeley Institute for Data Science. University of California - Berkeley. http://bids.berkeley.edu/people/fernando-perez. Retrieved 05 April 2016.
- "ipython/debian/changelog". GitHub. GitHub, Inc. 02 May 2008. https://github.com/ipython/ipython/blob/rel-0.9/debian/changelog. Retrieved 05 April 2016.
- Granger, B.E. (17 March 2011). "Initial draft of HTML5/JS/CSS3 notebook". GitHub. GitHub, Inc. https://github.com/jupyter/notebook/commit/360b6bf6abe1dd471205bf8c7f4f6de100ef2d17. Retrieved 05 April 2016.
- "IPython: Productive Interactive Computing". ipython.org. IPython Development Team. December 2011. Archived from the original on 03 January 2012. https://web.archive.org/web/20120103090433/http://ipython.org/. Retrieved 05 April 2016.
- "An HTML Notebook IPython". ipython.org. IPython Development Team. 19 December 2011. Archived from the original on 03 January 2012. https://web.archive.org/web/20120103161952/http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html. Retrieved 05 April 2016.
- Pérez, F. (09 July 2014). "Lightning Talks - SciPy 2014 - Tuesday July 8 2014". YouTube. Enthought; Google. https://www.youtube.com/watch?t=258&v=JDrhn0-r9Eg. Retrieved 05 April 2016. "From 0:00 to 8:50"
- Benjamin, R.K. (15 April 2015). "The Big Split". Jupyter Blog. Project Jupiter. http://blog.jupyter.org/2015/04/15/the-big-split/. Retrieved 05 April 2016.
- "IPython - News". ipython.org. Archived from the original on 04 March 2016. https://web.archive.org/web/20160304121305/http://ipython.org/news.html. Retrieved 05 April 2016.