Data science isn’t just about mining and analyzing data. A good data scientist needs to be able to present data to non-technical people in a way that they can understand. Sure, this could be done in a series of PowerPoint slides. However, there are tools out there specifically designed for this purpose

Jupyter Notebook is more than just a text editor. It is a tool that lets you run code inside a document and display the outputs. It can print text, draw graphs, and query data all within a single work-frame. Jupyter Notebooks is web-based, making it platform-independent and accessible from a wide range of devices.

The bare installation of Jupyter Notebooks has the core features you need to code and display your data analysis. However, a lot of efficiencies can be gained by installing a handful of extensions, transforming the authoring experience from being a tad tedious to a smooth ride. It can be a lot like writing code in Sublime Text after being acclimated to an IDE (Integrated development environment).

How to install Jupyter Notebook Extensions

Installing Jupyter Notebook extensions is a simple and streamlined process. The first step is to install Nbextensions via the command line.

pip install jupyter_contrib_nbextensions

If your system does not recognize the pip command, you will need to install that first using the command line.

py -m pip –version

Once you have Nbextensions installed, the process for installing extensions is as simple as running Jupyter Notebook and navigating to the Nbextensions tab that will now be available.

Jupyter Notebook Extensions

Simply tick the extensions you wish to install and the rest will be done behind the scenes.

12 Essential Jupyter Notebook Extensions

At the time of writing this there are dozens of extensions available for you to install. But which are most likely to contribute to your productivity in working with Jupyter notebooks? We checked and picked the brightest dozen.

Move selected cell

Keyboard shortcuts are great for improving efficiency. One of my favorite keyboard shortcuts when coding is moving a line up or down. This extension does the same but for moving a cell up or down. Once installed you can use Alt-up and Alt-down to move a cell.


Anybody that has ever used a plain text editor to write code when they are used to writing with auto-complete? Knows the pain of not having one installed. Tabnine takes it a step further and uses an AI to make smart, fast, and accurate auto-completion instead of giving you the entire list of possibilities.

A Code Prettifier

Quickly styling a section of code is not only useful for messy writers. Code prettifying is very useful when you modify existing code and leave some undesirable whitespaces. A Code Prettifier is a quick and easy way to get your code to look better and have more consistent styling.

You may need to install a few dependencies for A Code Prettifier to work, so if it doesn’t, check your dependencies. For the default python implementation run pip install yapf.

Collapsible Headings

This nifty extension modifies the way headers can be displayed, allowing readers to collapse and expand them. Once installed, all your headers will be collapsible, but you have a variety of options on how the collapse will function. For example, you can have Mathematica-style groupings, grey bracketed ellipses, or a toggle control. 

collapsible headings


Sometimes code in Jupyter Notebook cells takes a while to run. Users may tab out of the browser window to do something else while the kernel processes the code and forget to check back. Notify solves this issue by sending a browser notification when a cell has completed running. It doesn’t automatically notify on all cells and allows user discretion about when to be prompted.

jupyter notebook notify


If you’re anything like me then you spend more time Googling for code snippets than you spend typing code. Snippets is a handy menu extension that lets you quickly import a large number of code snippets directly into your code. Snippets is highly customizable allowing both to reduce menu size by removing unneeded submenus and adding code snippets of your own.

snippets jupyter notebook

Tree filter (file search)

A quick search tool to ease finding the file you need in the Files tab. This extension is simple and pure upside.

jupyter notebook tree filter


Autopep8 is another code formatter similar to A Code Prettifier. Autopep8 only works with python, and may require you to install from the command line using:

pip install autopep8

It works much the same way, but you may prefer one over the other.


Execute Time

Execute time is as simple as it sounds. It makes cells display execution start times and duration. This can be useful particularly for code that takes a while to process. It can be enabled and disabled at the user’s discretion.

execute time


A simple extension that will highlight the currently selected word and all matching words in the document. Very useful to quickly see where a variable or a function is used, as well as other repeated words.

highlighter heading example


Instead of making repeated changes to your code to get the information you need and then laboriously undo your changes you can use Scratchpad. Scratchpad allows you to run code against the current kernel without modifying any code. You can use it to test potential changes or simply produce some results you need on the fly.

 scratchpad jupyter notebook


Codefolding is a rendering extension that enables folding code snippets. It can fold based on the hierarchy of the code, which can be handy when reading large sections of code.

With those extensions installed you’re going to gain efficiency and comfort with using Jupyter Notebooks. Whether you need enhanced rendering, save time with code snippets, or employ sophisticated auto-complete there is an extension available to do so. Your presentations will improve, and your work will be better for it.

About the author

Ilana is a content writer for the blog