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.
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.
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.
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.
Hacking my way to a Jupyter notebook powered blog explores how the author created a blog using Jupyter but ran into some issues along the way, along with how to solve those problems.
Making Publication Ready Python Notebooks explores the plugins that the author uses when creating and exporting reports from Jupyter.
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.
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.