Jupyter Notebook (open source code), which began as the iPython Notebook project, is a development environment for writing and executing Python code. Jupyter Notebook is often used for exploratory data analysis and visualization.
Project Jupyter is the top-level project name for all of the subprojects under development, which includes Jupyter Notebook. Jupyter Notebooks can also run code for other programming languages such as Julia and R.
The key piece of Jupyter Notebook infrastructure is a web application that runs locally for creating and sharing documents that contain embedded code and execution results.
IPython Notebook was the original project that proved that there was great demand among data scientists and programmers for an interactive, repeatable development environment. Jupyter Notebook became the new official name for the overall project during The Big Split after the IPython Notebook project matured into distinct submodules such as the interactive shell, notebook document format and user interface widgets tools. However, the IPython Notebook name sticks around as the Python backend for Jupyter Notebook which is seriously confusing if you are searching the internet and come across both current and old articles that use all of these names interchangeably.
Jupyter Notebook's powerful analysis and visualization environment can be intimidating even for experienced developers that are new to the tool. The following tutorials will explain the basics so you can quickly figure out your own productive workflow.
Jupyter Notebook for Beginners: A Tutorial is a great place to start if you have never before used the tool. The guide covers installation, terminology, the user interface and how to publish your notebooks to the web. Screenshots walk you through some of the more confusing bits as you are getting up and running.
First Python Notebook is a free guide on analyzing data with Python and Jupyter Notebook. It covers many "Hello, World!"-style examples in both data analysis topics and more general software development areas like Git, GitHub and Markdown.
IPython Or Jupyter? covers the evolution of the Notebook concept from its origins in the IPython Notebook implementation through the IPython and Jupyter split that happened in 2015 that separated IPython Notebook into logical subprojects. The post kicks off with some fun lesser-known historical context on other data science notebook projects such as MATLAB and Mathematica to set the stage for IPython and Jupyter's creation.
How to use Jupyter Notebooks in 2020 (Part 1: The data science landscape) is a high-level overview post that starts a series on Jupyter Notebooks. This first post covers why a tool like Jupyter Notebook is needed in the broader landscape of data science. Part 2 examines the growth of the Jupyter ecosystem and the jump from exploratory analysis notebooks to production notebooks.
Jupyter Notebook Best Practices contains tips for beginners such as learning shortcuts and properly documenting the analysis you work on.
How to Version Control Jupyter Notebooks explains how Jupyter Notebooks are stored in JSON, the issues with that format for source control and how to get around the problem.
Example Notebooks are easy to fire up and see how other people are working. These resources are highly recommended after you read a couple of tutorials and play around with the tool.
Peter Norvig's collection of Jupyter Notebooks is a an incredible resource for example projects.
Building and Exploring a Map of Reddit with Python is a detailed notebook that digs into public Reddit data while explaining the "what" and "why" along the way.
This gallery of interesting Jupyter Notebooks provides many great examples across numerous programming languages.
jupyter-samples contains an extensive set of notebooks along with public data sets that can be used for analysis.
learn-python3 is geared towards Python beginners who want to learn basic syntax and standard library features such as about string manipulation, functions and iteration.
Once you get the hang of the basics there are a slew of ways to connect your notebooks to third party APIs and use more advanced Python libraries with your code. These walkthroughs cover a range of topics from niche tricks to common but advanced situations like advanced interactive visualizations.
Advanced Jupyter Notebook Tricks — Part I and Building Interactive Dashboards with Jupyter (Part 2) have a ton more details on ways to set up Jupyter Notebooks as dashboards and export results to other formats.
Creating Interactive Dashboards from Jupyter Notebooks shows how to use public Reddit data for a data analysis project as an example to display in dashboards running in a Jupyter Notebook.
mapboxgl-jupyter library along with the quickstart show you how to visualize geospatial data within your notebooks.
Reproducible Data Analysis in Jupyter is a fantastic series of videos by Jake Vanderplas that shows how to move your code from the interactive Jupyter environment into packaged, tested Python code that is suitable for deployment to a production environment.
How to use ipywidgets to make your Jupyter notebook interactive is a tutorial on how to use the ipywidgets library to make Jupyter Notebooks respond to users' input and go beyond simply presenting data into having users be able to do some additional analysis themselves.
28 Jupyter Notebook tips, tricks and shortcuts explains many of the lesser-known keyboard shortcuts and mechanisms to output settings.
Boost Your Jupyter Notebook Productivity covers hotkeys, data plotting, shell commands, timing and other topics you will eventually want to handle within your notebooks as you get comfortable in the environment.
Making Publication Ready Python Notebooks explores the plugins that the author uses when creating and exporting reports from Jupyter.
PyData has an extensive list of Jupyter Notebook talks from past events. JupyterCon has a similarly extensive talks list that is also worth watching.
Integrate Google Sheets and Jupyter Notebooks answers the common question of how to extract data directly from a Google Sheet and start working with it in your Jupyter Notebook. The screenshots help a lot to make sure you avoid getting lost in the sea of menus along the way.
Analyzing Cryptocurrency Markets using Python uses a freely-available Bitcoin API as a source data set for a data analysis and visualization project in Jupyter.
nbdev: use Jupyter Notebooks for everything shows how to use the nbdev tool to create a literate programming environment within a Jupyter Notebook so that you can do all of your debugging and refactoring there rather than switching between a more traditional IDE and Jupyter.
Running Jupyter Notebooks on GPU on AWS: a starter guide explains how to run notebooks on Amazon Web Services using a graphics-processing unit (video card), which for some machine learning situations can result in significantly faster execution times.
Python & Big Data: Airflow & Jupyter Notebook with Hadoop 3, Spark & Presto walks through a data pipeline that combines several commonly-used data analysis tools with a Jupyter Notebook.
Ansible-jupyter-kernel is a kernel that allows you to run Ansible tasks and playbooks from within your Jupyter environment.
Jupyter Notebooks in the IDE explains how to use Jupyter files in Visual Studio Code or PyCharm with Jupytext, which defines the pairing information and notebook kernel.
The Notebook Wars is not a tutorial but instead points to the weaknesses that become apparent when using Jupyter and the current generation of notebook projects. The article raises many good points about barriers to entry although you could also argue some of these issues have been mitigated by Jupyter, just not as much as some people would like to see. Overall there is a lot to enjoy reading here and reflect on so that the community can continue making Jupyter a fantastic environment for development.
Creating Presentations with Jupyter Notebook shows how to make slides out of your cells so you can present your work like a traditional presentation.
The number of open source Jupyter Notebooks on GitHub is exploding and this post attempts to estimate the growth using Python, pandas and a scraped data set.
Reproducible Jupyter Notebooks with Docker explains when to use Docker in combination with Jupyter Notebooks as well as the instructions for creating a dockerfile to build your images.
JupyterLab GPU Dashboards contains a Bokeh server and TypeScript code for displaying GPU utilization charts.