The Jupyter Notebook is a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data processing, numerical simulation, statistical modeling, machine learning and much more.


Jupyter Notebook (Features)


Multiple Languages

WoW!!, Jupyter allows 40 progamming languages, including those popular in Data Science such as Python, R, MATLAB, Scilab, Julia and Scala and others like: C, C++, Bash, NPM, F#, and C# 4.0+.


Sharing Notebooks

Notebooks can be shared with others using Email, Dropbox, GitHub and the Jupyter Notebook Viewer. You can click View NoteBook button, in Carsoule below to visualize many publically available Jupyter notebooks. This proves how Jupyter is able to use complex mathematical code in 40 languages.

When you click on View NoteBook button in the carsoule above. It’ll launch noteboook URL (to .ipynb file) which will be rendered by IPython jupyter public web service into a scientific page.


NBViewer WebService

NBViewer WebService is a free IPython notebook viewer webservice which shall allow you to share static html versions of your publically hosted notebook files. If a notebook (.ipynb file) is publicly available, by giving its url to the service viewer, you should be able to view it. NBViewer webservice uses IPython’s nbconvert to export .ipynb file URL to static HTML page.

Many public sample notebooks are availaible here, here, & here. Look for official github repository for IPython code and examples. Navigate to http://nbviewer.jupyter.org/ and use your notebook’s: URL (.ipynb), GitHub Username/Repo, or Gist ID in the input box provided to view it.

My GitLab’s Sample Public Notebook at URL: https://sachingpta.gitlab.io/assets/JupyterNoteBooks/HelloWorld.ipynb. Paste public url to jupyter free online notebook viewer webservice to view it or click on the URL (it’ll directly open, if you’ve installed jupyter browser extensions otherwise ask you to save .ipynb file). Regardless of all, next button points to direct notebook url viewing using jupyter webservice.

HelloWorld.ipynb

Following Browser Extensions & Bookmarklet assist you open your current notebook URL (containing .ipynb file) in nbviewer with one click.

Chrome Extension Firefox Extension Safari Extension

If you have IPython installed you have access to the same functionality and many more formats by invoking ipython nbconvert at a command line. Following options are availaible for one to convert, host and view a notebook (.ipynb) file as HTML page:

  1. Create .ipynb to HTML locally using nbconvert, and push generated HTML to 3rd party web server like GitHub. This option gives more flexibility but you need to have IPython local deployment.
  2. Create .ipynb to HTML locally using nbconvert, and Serve locally using Jupyter Server. This option gives most power but you need to be a internet host. Users here can create notebooks online using your own Jupyter Server and you may use lanaguages other that python also.
  3. Put your IPython Only notebooks (.ipynb files) on public URL and use Notebook Viewer Service to render it for you.

Rich Output (Widgets)

Jupyter code can produce images, videos, LaTeX, and JavaScript. Interactive widgets can manipulate and visualize data in realtime.


BigDATA Integration

Jupyter leverages big data tools, such as Apache Spark, from Python, R and Scala. Explore that same data with pandas, scikit-learn, ggplot2, dplyr, etc.


JupyterHub (Multiuser Option)

With open-source JupyterHub you can create Multi-user Server for Jupyter notebooks. Follow this link for documentation & installation of JupyterHub.

JupyterHub creates a Multi-user Hub which spawns, manages, and proxies multiple instances of the single-user Jupyter notebook (IPython notebook) server. It provides single-user notebook servers to many users. Typical use-case is to deploy the Jupyter Notebook to all of the users in your organization on centralized servers on-site or off-site

Three subsystems make up JupyterHub

  • A Multi-user Hub (tornado process)
  • A configurable http proxy (node-http-proxy)
  • Multiple single-user Jupyter notebook servers (Python/IPython/tornado)

JupyterHub’s basic flow of operations includes

  • The Hub spawns a proxy
  • The proxy forwards all requests to the Hub by default
  • The Hub handles user login and spawns single-user servers on demand
  • The Hub configures the proxy to forward URL prefixes to the single-user notebook servers

Jupyter Hub