0% found this document useful (0 votes)
67 views36 pages

Bringing The Best Out of Jupyter Notebooks For Data Science - by Parul Pandey - Towards Data Science

The document discusses ways to enhance productivity when using Jupyter Notebooks for data science. It describes executing shell commands directly in notebooks, using different themes to change the notebook appearance, installing extensions to add new functionality, and embedding external content like URLs, PDFs, and YouTube videos. Additional tips include using widgets and Qgrid to interact with data in notebooks.

Uploaded by

RAHUL DHANOLA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views36 pages

Bringing The Best Out of Jupyter Notebooks For Data Science - by Parul Pandey - Towards Data Science

The document discusses ways to enhance productivity when using Jupyter Notebooks for data science. It describes executing shell commands directly in notebooks, using different themes to change the notebook appearance, installing extensions to add new functionality, and embedding external content like URLs, PDFs, and YouTube videos. Additional tips include using widgets and Qgrid to interact with data in notebooks.

Uploaded by

RAHUL DHANOLA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Sign in Get started

Follow 568K Followers · Editors' Picks Features Deep Dives Grow Contribute About

This is your last free member-only story this month. Sign up for Medium and get an extra one

Bringing the best out of Jupyter


Notebooks for Data Science
Enhance Jupyter Notebook’s productivity with these Tips & Tricks.

Parul Pandey Dec 19, 2018 · 9 min read

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 1/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Photo by Aaron Burden on Unsplash

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 2/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Reimagining what a Jupyter notebook can be and


what can be done with it.

Netflix aims to provide personalized content to their 130 million viewers.


One of the significant ways by which data scientists and engineers at Netflix
interact with their data is through Jupyter notebooks. Notebooks leverage
the use of collaborative, extensible, scalable, and reproducible data science.
For many of us, Jupyter Notebooks is the de facto platform when it comes
to quick prototyping and exploratory analysis. However, there’s more to this
than meets the eye. A lot of Jupyter functionalities sometimes lies under the
hood and is not adequately explored. Let us try and explore Jupyter
Notebooks’ features which can enhance our productivity while working
with them.

Table of Contents
1. Executing Shell Commands

2. Jupyter Themes

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 3/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

3. Notebook Extensions

4. Jupyter Widgets

5. Qgrid

6. Slideshow

7. Embedding URLs, PDFs, and Youtube Videos

1. Executing Shell Commands


The notebook is the new shell

The shell is a way to interact textually with the computer. The most popular
Unix shell is Bash(Bourne Again SHell ). Bash is the default shell on most
modern implementations of Unix and in most packages that provide Unix-
like tools for Windows.

Now, when we work with any Python interpreter, we need to regularly


switch between the shell and the IDLE, in case we need to use the command
line tools. However, the Jupyter Notebook gives us the ease to execute shell

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 4/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

commands from within the notebook by placing an extra ! before the

commands. Any command that works at the command-line can be used in


IPython by prefixing it with the ! character.

In [1]: !ls

example.jpeg list tmp

In [2]: !pwd

/home/Parul/Desktop/Hello World Folder'

In [3]: !echo "Hello World"

Hello World

We can even pass values to and from the shell as follows:

In [4]: files= !ls

In [5]: print(files)

['example.jpeg', 'list', 'tmp']

In [6]: directory = !pwd

In [7]: print(directory)

['/Users/Parul/Desktop/Hello World Folder']

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 5/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science
In [8]: type(directory)

IPython.utils.text.SList

Notice, the data type of the returned results is not a list.

2. Jupyter Themes
Theme-ify your Jupyter Notebooks!

If you are a person who gets bored while staring at the white background of
the Jupyter notebook, themes are just for you. The themes also enhance the
presentation of the code. You can find more about Jupyter themes here.
Let’s get to the working part.

Installation

pip install jupyterthemes

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 6/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

List of available themes

jt -l

Currently, the available themes are chesterish, grade3, gruvboxd,


gruvboxl monokai, oceans16, onedork, solarizedd ,solarizedl.

# selecting a particular theme

jt -t <name of the theme>

# reverting to original Theme

jt -r

You will have to reload the jupyter notebook everytime you change the
theme, to see the effect take place.

The same commands can also be run from within the Jupyter Notebook by
placing ‘ ! ’ before the command.

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 7/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Left: original | Middle: Chesterish Theme | Right: solarizedl theme

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 8/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 9/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

3. Notebook Extensions
Extend the possibilities

Notebook extensions let you move beyond the general vanilla way of using
the Jupyter Notebooks. Notebook extensions (or nbextensions) are
JavaScript modules that you can load on most of the views in your
Notebook’s frontend. These extensions modify the user experience and
interface.

Installation
Installation with conda:

conda install -c conda-forge jupyter_nbextensions_configurator

Or with pip:

pip install jupyter_contrib_nbextensions && jupyter contrib


nbextension install

#incase you get permission errors on MacOS,

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 10/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science
pip install jupyter_contrib_nbextensions && jupyter contrib
nbextension install --user

Start a Jupyter notebook now, and you should be able to see an


NBextensions Tab with a lot of options. Click the ones you want and see
the magic happen.

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 11/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

In case you couldn’t find the tab, a second small nbextension, can be
located under the menu Edit .

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 12/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Let us discuss some of the useful extensions.

1. Hinterland
Hinterland enables code autocompletion menu for every keypress in a code
cell, instead of only calling it with the tab. This makes Jupyter notebook’s
autocompletion behave like other popular IDEs such as PyCharm.

2. Snippets
https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 13/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

This extension adds a drop-down menu to the Notebook toolbar that allows
easy insertion of code snippet cells into the current notebook.

3. Split Cells Notebook


This extension splits the cells of the notebook and places then adjacent to
each other.

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 14/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

4. Table of Contents
This extension enables to collect all running headers and display them in a
floating window, as a sidebar or with a navigation menu. The extension is
also draggable, resizable, collapsible and dockable.

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 15/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

5. Collapsible Headings
Collapsible Headings allows the notebook to have collapsible sections,
separated by headings. So in case you have a lot of dirty code in your
notebook, you can simply collapse it to avoid scrolling it again and again.

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 16/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

6. Autopep8
Autopep8 helps to reformat/prettify the contents of code cells with just a
click. If you are tired of hitting the spacebar again and again to format the
code, autopep8 is your savior.

4. Jupyter Widgets
https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 17/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Make notebooks interactive

Widgets are eventful python objects that have a representation in the


browser, often as a control like a slider, textbox, etc. Widgets can be used to
build interactive GUIs for the notebooks.

Installation

# pip

pip install ipywidgets

jupyter nbextension enable --py widgetsnbextension

# Conda

conda install -c conda-forge ipywidgets

#Installing ipywidgets with conda automatically enables the extension

Let us have a look at some of the widgets. For complete details, you can visit
their Github repository.

Interact

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 18/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

The interact function ( ipywidgets.interact ) automatically creates a user


interface (UI) controls for exploring code and data interactively. It is the
easiest way to get started using IPython's widgets.

# Start with some imports!

from ipywidgets import interact

import ipywidgets as widgets

1. Basic Widgets

def f(x):

return x

# Generate a slider

interact(f, x=10,);

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 19/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

# Booleans generate check-boxes

interact(f, x=True);

# Strings generate text areas

interact(f, x='Hi there!');

2. Advanced Widgets
Here is a list of some of the useful advanced widgets.

Play Widget
The Play widget is useful to perform animations by iterating on a sequence
of integers at a certain speed. The value of the slider below is linked to the

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 20/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

player.

play = widgets.Play(

# interval=10,

value=50,

min=0,

max=100,

step=1,

description="Press play",

disabled=False

slider = widgets.IntSlider()

widgets.jslink((play, 'value'), (slider, 'value'))

widgets.HBox([play, slider])

Date picker
The date picker widget works in Chrome and IE Edge but does not currently
work in Firefox or Safari because they do not support the HTML date input
field.

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 21/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

widgets.DatePicker(

description='Pick a Date',

disabled=False

Color picker

widgets.ColorPicker(

concise=False,

description='Pick a color',

value='blue',

disabled=False

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 22/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Tabs

tab_contents = ['P0', 'P1', 'P2', 'P3', 'P4']

children = [widgets.Text(description=name) for name in tab_contents]

tab = widgets.Tab()

tab.children = children

for i in range(len(children)):

tab.set_title(i, str(i))

tab

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 23/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

5. Qgrid
Make Data frames intuitive

Qgrid is also a Jupyter notebook widget but mainly focussed at dataframes.


It uses SlickGrid to render pandas DataFrames within a Jupyter notebook.
This allows you to explore your DataFrames with intuitive scrolling, sorting
and filtering controls, as well as edit your DataFrames by double-clicking
cells. The Github Repository contains more details and examples.

Installation
Installing with pip:

pip install qgrid

jupyter nbextension enable --py --sys-prefix qgrid

# only required if you have not enabled the ipywidgets nbextension


yet

jupyter nbextension enable --py --sys-prefix widgetsnbextension

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 24/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Installing with conda:

# only required if you have not added conda-forge to your channels


yet

conda config --add channels conda-forge

conda install qgrid

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 25/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

6. Slideshow
Code is great when communicated.

Notebooks are an effective tool for teaching and writing explainable codes.
However, when we want to present our work either we display our entire
notebook(with all the codes) or we take the help of powerpoint. Not any
more. Jupyter Notebooks can be easily converted to slides and we can easily
choose what to show and what to hide from the notebooks.

There are two ways to convert the notebooks into slides:

1. Jupyter Notebook’s built-in Slide option


https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 26/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Open a new notebook and navigate to View → Cell Toolbar → Slideshow.


A light grey bar appears on top of each cell, and you can customize the
slides.

Now go to the directory where the notebook is present and enter the
following code:

jupyter nbconvert *.ipynb --to slides --post serve

# insert your notebook name instead of *.ipynb

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 27/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

The slides get displayed at port 8000. Also, a .html file will be generated in
the directory, and you can also access the slides from there.

This would look even more classy with a themed background. Let us apply
the theme ’onedork’ to the notebook and then convert it into a slideshow.

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 28/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

These slides have a drawback i.e. you can see the code but cannot edit it.
RISE plugin offers a solution.

2. Using the RISE plugin


RISE is an acronym for Reveal.js — Jupyter/IPython Slideshow
Extension. It utilized the reveal.js to run the slideshow. This is super useful
since it also gives the ability to run the code without having to exit the
slideshow.
https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 29/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Installation

1 — Using conda (recommended):

conda install -c damianavila82 rise

2 — Using pip (less recommended):

pip install RISE

and then two more steps to install the JS and CSS in the proper places:

jupyter-nbextension install rise --py --sys-prefix

#enable the nbextension:

jupyter-nbextension enable rise --py --sys-prefix

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 30/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Let us now use RISE for the interactive slideshow. We shall re-open the
Jupyter Notebook we created earlier. Now we notice a new extension that
says “Enter/Exit RISE Slideshow.”

Click on it, and you are good to go. Welcome to the world of interactive
slides.

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 31/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

Refer to the documentation for more information.

6. Embedding URLs, PDFs, and Youtube Videos


Display it right there!

Why go with mere links when you can easily embed an URL, pdf, and videos
into your Jupyter Notebooks using IPython’s display module.

URLs

#Note that http urls will not be displayed. Only https are allowed
inside the Iframe

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 32/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science
from IPython.display import IFrame

IFrame('https://en.wikipedia.org/wiki/HTTPS', width=800, height=450)

PDFs
https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 33/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

from IPython.display import IFrame

IFrame('https://arxiv.org/pdf/1406.2661.pdf', width=800, height=450)

Youtube Videos

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 34/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

from IPython.display import YouTubeVideo

YouTubeVideo('mJeNghZXtMo', width=800, height=300)

Conclusion
These were some of the features of the Jupyter Notebooks that I found
useful and worth sharing. Some of them would be obvious to you while

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 35/36
13/08/2021 Bringing the best out of Jupyter Notebooks for Data Science | by Parul Pandey | Towards Data Science

some may be new. So, go ahead and experiment with them. Hopefully, they
will be able to save you some time and give you a better UI experience. Also
feel free to suggest other useful features in the comments.

Sign up for The Variable


By Towards Data Science

Every Thursday, the Variable delivers the very best of Towards Data Science: from
hands-on tutorials and cutting-edge research to original features you don't want to
miss. Take a look.

Get this newsletter

Data Science Jupyter Notebook Ipython Programming Towards Data Science

About Write Help Legal

https://towardsdatascience.com/bringing-the-best-out-of-jupyter-notebooks-for-data-science-f0871519ca29 36/36

You might also like