Getting the most out of Jupyter Lab | by Adam Green | Towards Data Science

Love them or hate them, notebooks are part of being a data scientist. Historically the only way to work with notebooks was using Jupyter Notebook — in 2017 we were given Jupyter Lab.
Jupyter Lab offers a superior development experience to Jupyter Notebook, with improvements such as:
a file browser
a text editor
terminal access
split views
This post is aimed at showing off what Jupyter Lab can do. If you are already a Jupyter user, skip straight to the tips & tricks section.
Install without a space:
$ pip install jupyterlab
Start a server with a space:
$ jupyter lab
You can then point your browser to http://localhost:8888/lab, and you'll see the Launcher screen, shown below with the File Browser open in the sidebar:
Unlike Jupyter Notebook, you can have multiple tabs open side by side — you can also keep track of your kernels by selecting Running Terminals & Kernels in the sidebar:
Something that can be confusing is the difference between the .ipynb notebook file, Jupyter Notebook & Jupyter Lab:
a notebook file (.ipynb) is a JSON text file that defines the structure & code of a notebook
Jupyter Notebook & Jupyter Lab are programs that allow you to run & edit notebook files
Both Jupyter Notebook & Jupyter Lab can be used to run any .ipynb notebook file.
Another area for confusion is what exactly a kernel is. A kernel is just a running Python interpreter, usually connected to a notebook. It is possible swap kernels after they are running, but it’s not something we do a lot.
Kernels can be managed from the menu bar — restarting kernels is something that is done a lot. Unfortunately there are no default shortcuts setup for kernel management — see our post on Customizing Jupyter Lab Shortcuts to see how to set these up.
In order to control which virtual environment you are using in the notebook, it’s best to activate the environment before you install Jupyter Lab or start the server. For example, if you are using conda to manage virtual environments:
You’ll also want to make sure you activated this environment before installing Jupyter Lab.
When editing notebooks, Jupyter Lab becomes a modal editor with two modes — Command and Edit:
Command Mode for operating on cells
Edit Mode for operating on text
A modal editor will operate differently depending on the mode — the same key will do different things based on what mode you are in. You can see what mode you are in on the status bar.
You can move between modes using:
Enter to move from Command to Edit
Escape to move from Edit to Command
Cells can be run using Shift Enter in either mode, ending up in Command mode.
A notebook is composed of cells — blocks that contain text. The text inside a cell can either be code, Markdown or raw text. The ability to have mix executable code and Markdown documentation is a key feature of notebooks.
You can change the cell type using a dropdown:
You can change cell types using the following shortcuts in Command mode:- m = change cell to Markdown - y = change cell to code
Three other useful Command Mode shortcuts for operating on cells are:- a = insert cell above- b= insert cell below- dd = delete cell
Mastering these five shortcuts will allow you to work with cells as efficiently as you work with text.
This section is a rapid fire look at the features Jupyter Lab offers.
Pressing Shift-Tab will show a tooltip for the function or class your cursor is on:
Similar to the tooltip, except it’s always there. You can have this help always shown in a separate pane by opening a Show Contextual Help window from the Launcher:
Consoles are another way to interact with a running kernel — a cool trick is to connect a console to a Python script (.py):
No more committing README.md changes just to see the updates:
These are actually iPython features, and will also work in an iPython kernel:
a single ? to see the docstring
a double ?? to see the source code
Another iPython feature - running shell commands inside a notebook:
You can use this to automatically install packages in the first cell of a notebook — make sure to use the -q flag to hide the output:
Autoreload helps deal with the problem of source code outside the notebook not being reimported when it’s changed. This is only a problem when the source code changes after you start the kernel — essentially only when you are writing code yourself, external to the notebook.
%load_ext autoreload%autoreload 2
Putting these two commands at the top of your notebook will mean that if you make changes to source code outside of the notebook, you can get these changes without having to restart the kernel.
The most important tip of all — a dark theme:
Below is a list of the most useful keyboard shortcuts in Jupyter Lab:
Cmd B = toggle sidebar
Alt W = close tab
Enter= to move from Command to Edit
Escape = to move from Edit to Command
Shift Enter = run cell
- a = insert cell above- b = insert cell below- dd = delete cell- z = undo cell- shift z = redo cell- m = change cell to Markdown- y = change cell to code
- Cmd Z = undo text - Shift Cmd Z = redo text
Thanks for reading!
If you enjoyed this post, feel free to follow me on Medium or connect on LinkedIn.
Make sure to check out some of my other posts:
towardsdatascience.com
towardsdatascience.com
Originally published at https://www.datasciencesouth.com.