A smooth procedure when working in a team is of primary im­port­ance in many sectors. That's why tools for com­mu­nic­a­tion and for the or­gan­isa­tion and ver­sion­ing of work stages and project data have become almost in­dis­pens­able. Various ap­plic­a­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, visu­al­isa­tions and more, along with ex­plan­at­ory in­form­a­tion, in real time. What is behind the open source ap­plic­a­tion developed and managed by Project Jupyter?

What is a Jupyter Notebook?

Jupyter Notebook is a client server ap­plic­a­tion made by the non-profit or­gan­isa­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­em­at­ic­al formulae and equations or media content (rich media), among other things. The web-based client ap­plic­a­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­tern­at­ively, 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­pon­ents of Jupyter Notebook are a set of different kernels (in­ter­pret­ers) 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­pret­er which makes it possible to work with Python. More than 50 other kernels give support to other languages such as C++, R, Julia, Ruby, JavaS­cript, Cof­feeScript, PHP or Java. On the one hand the dashboard serves as a man­age­ment interface for in­di­vidu­al kernels, and on the other hand as a center 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 Jupy­ter­Hub and Jupy­ter­Lab?

Jupyter Notebook is not the only open source offer from the Jupyter project: with Jupy­ter­Hub and Jupy­ter­Lab the developer team offers two other services that are closely as­so­ci­ated with the in­ter­act­ive code en­vir­on­ment.

Jupy­ter­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­vir­on­ment. The server ad­min­is­trat­or manages access to the documents in question (an au­then­tic­a­tion method can be im­ple­men­ted), while in­di­vidu­al users can con­cen­trate wholly upon their own tasks. Detailed in­form­a­tion about the in­stall­a­tion and hosting of Jupy­ter­Hub is offered by the multi-user solu­tion's official GitHub re­pos­it­ory.

Jupy­ter­Lab is the official successor of Jupyter Notebook and should replace the basic program in the long term. Compared to its pre­de­cessor, Jupy­ter­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­pon­ents be opened and displayed in the com­pletely 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­men­ted, to make working with the code en­vir­on­ment even simpler.

Which purposes is Jupyter Notebook suitable for?

Jupyter Notebook provides an en­vir­on­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­mented and used, data visu­al­ized, cal­cu­la­tions carried out and the relevant results appraised. Users benefit from the fact that any code in in­de­pend­ent cells can be hosted in the prototype phase in par­tic­u­lar, which makes it possible to test specific code blocks in­di­vidu­ally. 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­ib­il­ity with coding and analysis.

The major usage purposes of Jupyter Notebook include:

  • Data cleaning: Dif­fer­en­ti­ation between important and un­im­port­ant data in big data analysis
  • Stat­ist­ic­al modeling: Math­em­at­ic­al methods for identi­fy­ing the estimated dis­tri­bu­tion prob­ab­il­ity of a specific feature
  • Creation and training of machine learning models: Design, pro­gram­ming and training of models based on machine learning
  • Data visu­al­iz­a­tion: Graphic present­a­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­plic­a­tion of the practical code en­vir­on­ment on their system (or al­tern­at­ively 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 re­com­mends down­load­ing the Anaconda dis­tri­bu­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­teg­rated 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­act­ive 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­vant­ages of Jupyter Notebook

Anyone wanting to write scripts and test them in real time, visualize data or carry out complex math­em­at­ic­al 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 Jupy­ter­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­plic­a­tion – thanks to diverse ready-to-use in­ter­pret­ers for other languages, however, it is also possible to code simply with other variables such as C++, PHP or Java.

Summary of the ad­vant­ages 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­oper­a­tion option (Jupy­ter­Hub)
  • More than 50 pro­gram­ming languages supported
Go to Main Menu