A smooth procedure when working in a team is of primary im­por­tance in many sectors. That's why tools for com­mu­ni­ca­tion and for the or­ga­ni­za­tion and ver­sion­ing of work stages and project data have become almost in­dis­pens­able. Various ap­pli­ca­tions exist for data science and sim­u­la­tion, and these strive to live up to demands. The web-based solution Jupyter Notebook creates a seamless bridge between program code and narrative text, enabling users to create and share code, equations, vi­su­al­iza­tions and more, along with ex­plana­to­ry in­for­ma­tion, in real time. What is behind the open source ap­pli­ca­tion developed and managed by Project Jupyter?

What is a Jupyter Notebook?

Jupyter Notebook is a client server ap­pli­ca­tion made by the non-profit or­ga­ni­za­tion Project Jupyter. It was released in 2015. It enables the creation and sharing of Web documents in JSON format, which follow a versioned schema and an ordered list of input/output cells. These cells offer space for code, markdown text, math­e­mat­i­cal formulae and equations or media content (rich media), among other things. The web-based client ap­pli­ca­tion, which can be started with all usual browsers, can be used to process your notebook if the Jupyter Notebook server is also installed and used on the system. The Jupyter documents created can be exported as HTML, PDF, markdown or Python documents. Al­ter­na­tive­ly, they can be shared with other users via e-mail, Dropbox, GitHub or Jupyter Notebook’s own viewer.

Note

The project name “Jupyter” is made up of its three core pro­gram­ming languages, Julia, Python and R.

The two central com­po­nents of Jupyter Notebook are a set of different kernels (in­ter­preters) as well as the dashboard. Kernels are small programs that process language-specific requests and respond with ap­pro­pri­ate answers. The standard kernel is IPython, a command line in­ter­preter which makes it possible to work with Python. More than 50 other kernels give support to other languages such as C++, R, Julia, Ruby, JavaScript, Cof­fee­Script, PHP or Java. On the one hand the dashboard serves as a man­age­ment interface for in­di­vid­ual kernels, and on the other hand as a centre for the creation of new Notebook documents or the opening of existing projects. Jupyter Notebook comes under a modified BSD license and is therefore freely available for all users.

How does Jupyter Notebook differ from Jupyter­Hub and Jupyter­Lab?

Jupyter Notebook is not the only open source offer from the Jupyter project: with Jupyter­Hub and Jupyter­Lab the developer team offers two other services that are closely as­so­ci­at­ed with the in­ter­ac­tive code en­vi­ron­ment.

Jupyter­Hub is a multi-user server including proxy, which links several Jupyter-Notebook instances with one another. This can either be hosted in the Cloud or on in-house hardware, and enables the use of a common Notebook en­vi­ron­ment. The server ad­min­is­tra­tor manages access to the documents in question (an au­then­ti­ca­tion method can be im­ple­ment­ed), while in­di­vid­ual users can con­cen­trate wholly upon their own tasks. Detailed in­for­ma­tion about the in­stal­la­tion and hosting of Jupyter­Hub is offered by the multi-user so­lu­tion's official GitHub repos­i­to­ry.

Jupyter­Lab is the official successor of Jupyter Notebook and should replace the basic program in the long term. Compared to its pre­de­ces­sor, Jupyter­Lab offers more options for adapting and in­ter­act­ing and, fur­ther­more, it is even simpler to extend. Not only can text editors, terminals and other com­po­nents be opened and displayed in the com­plete­ly reworked user interface in parallel with the Notebook documents, but links to Google Drive and other Cloud services, ad­di­tion­al menu points or shortcut keys can also be im­ple­ment­ed, to make working with the code en­vi­ron­ment even simpler.

Which purposes is Jupyter Notebook suitable for?

Jupyter Notebook provides an en­vi­ron­ment that is perfectly tailored to the re­quire­ments and workflow of data science and sim­u­la­tion. In a single instance, user codes can be written, doc­u­ment­ed and used, data vi­su­alised, cal­cu­la­tions carried out and the relevant results appraised. Users benefit from the fact that any code in in­de­pen­dent cells can be hosted in the prototype phase in par­tic­u­lar, which makes it possible to test specific code blocks in­di­vid­u­al­ly. Thanks to the numerous ad­di­tion­al kernels Jupyter is not limited to Python as a program language, which means a great deal of flex­i­bil­i­ty with coding and analysis.

The major usage purposes of Jupyter Notebook include:

  • Data cleaning: Dif­fer­en­ti­a­tion between important and unim­por­tant data in big data analysis
  • Sta­tis­ti­cal modelling: Math­e­mat­i­cal methods for iden­ti­fy­ing the estimated dis­tri­b­u­tion prob­a­bil­i­ty of a specific feature
  • Creation and training of machine learning models: Design, pro­gram­ming and training of models based on machine learning
  • Data vi­su­al­i­sa­tion: Graphic pre­sen­ta­tion of data clarifies patterns, trends, etc.

How does Jupyter Notebook work?

Anyone wishing to use the options of Jupyter Notebook must first install the client and server ap­pli­ca­tion of the practical code en­vi­ron­ment on their system (or al­ter­na­tive­ly in the Cloud). The only pre­con­di­tion is that a current version of Python is also installed. For this reason, the Jupyter team rec­om­mends down­load­ing the Anaconda dis­tri­b­u­tion, which includes Jupyter Notebook as well as Python in addition to various other software packages for data science cal­cu­la­tion, etc. One you have done this, the Notebook server can be started via the command line and then the dashboard can be called up in the browser of choice via the URL 'http://localhost:8888'.

Users place new folders in the Jupyter Notebook directory, open the in­te­grat­ed text editor and the terminal or start a new Jupyter project. Each newly created project includes only a single empty entry field to start with. Other fields can be added, libraries imported or widgets (in­ter­ac­tive elements) embedded via the menu bar. The bar also has buttons for exporting and stopping completed codes, to save or export the entire document, and to select the un­der­ly­ing kernel.

Tip

On the official Jupyter homepage you can test Jupyter Notebook without in­stalling it.

Summary of the ad­van­tages of Jupyter Notebook

Anyone wanting to write scripts and test them in real time, visualise data or carry out complex math­e­mat­i­cal cal­cu­la­tions has a first-class solution to hand with Jupyter Notebook. Results can be exported with just a few clicks and in various formats, or can be sent directly by e-mail. Users of the multi-user service Jupyter­Hub can even process the “notebooks” jointly to optimally advance the relevant project in the team. As Jupyter is written in Python, Python spe­cial­ists have the home advantage when using the open-source ap­pli­ca­tion – thanks to diverse ready-to-use in­ter­preters for other languages, however, it is also possible to code simply with other variables such as C++, PHP or Java.

Summary of the ad­van­tages of Jupyter Notebook:

  • Open source (modified BSD license)
  • Can be used free of charge
  • Browser-based
  • Live code
  • Various options for exporting and sharing results
  • Version man­age­ment
  • Co­op­er­a­tion option (Jupyter­Hub)
  • More than 50 pro­gram­ming languages supported
Go to Main Menu