Top Related Projects
Visual Studio Code
IntelliJ IDEA Community Edition & IntelliJ Platform
📘 The interactive computing suite for you! ✨
JupyterLab computational environment.
Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more.
Quick Overview
The Jupyter Notebook is an open-source web application that allows users to create and share documents that contain live code, visualizations, and narrative text. It is widely used in the data science and scientific computing communities for interactive data analysis, visualization, and collaboration.
Pros
- Interactive and Exploratory: The Jupyter Notebook provides an interactive environment for writing and executing code, visualizing data, and documenting the analysis process.
- Supports Multiple Programming Languages: The Jupyter Notebook supports a wide range of programming languages, including Python, R, Julia, and more, allowing users to choose the language best suited for their needs.
- Literate Programming: The Jupyter Notebook combines code, text, and visualizations in a single document, enabling a literate programming approach that makes it easier to communicate and share ideas.
- Collaboration and Sharing: Jupyter Notebooks can be shared and collaborated on, making it a valuable tool for team-based data analysis and research.
Cons
- Dependency Management: Managing dependencies and environments can be challenging, especially when working with multiple Jupyter Notebooks that require different software versions or packages.
- Performance Limitations: Jupyter Notebooks can become slow and resource-intensive, especially when working with large datasets or complex computations.
- Security Concerns: Jupyter Notebooks can potentially be a security risk if not properly configured, as they allow the execution of arbitrary code.
- Steep Learning Curve: The Jupyter Notebook ecosystem can have a steep learning curve, especially for users new to data science or programming.
Code Examples
Here are a few code examples demonstrating the usage of the Jupyter Notebook:
- Importing Libraries and Displaying a Plot:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
This code imports the necessary libraries, generates some sample data, and creates a simple plot using Matplotlib.
- Markdown Cells and Markdown Formatting:
# Heading 1
## Heading 2
### Heading 3
This is a paragraph with *italic text* and **bold text**.
- Unordered list item 1
- Unordered list item 2
1. Ordered list item 1
2. Ordered list item 2
This example demonstrates the use of Markdown cells in the Jupyter Notebook, which allow for the inclusion of formatted text, headings, and lists.
- Interactive Widgets:
import ipywidgets as widgets
slider = widgets.IntSlider()
display(slider)
This code creates an interactive slider widget using the ipywidgets
library, which can be used to create dynamic and interactive visualizations within the Jupyter Notebook.
Getting Started
To get started with the Jupyter Notebook, follow these steps:
- Install Python (if you haven't already) and the Jupyter Notebook package using pip:
pip install jupyter
- Start the Jupyter Notebook server from the command line:
jupyter notebook
-
The Jupyter Notebook server will start, and a new browser window or tab will open, displaying the Jupyter Notebook interface.
-
From the Jupyter Notebook interface, you can create a new notebook, open an existing notebook, or navigate to the directory containing your notebooks.
-
Within a notebook, you can write and execute code, add Markdown cells for documentation, and create visualizations using libraries like Matplotlib, Plotly, or Bokeh.
-
To save your work, simply click the "Save" button in the toolbar or use the keyboard shortcut
Ctrl+S
(Windows/Linux) orCmd+S
(macOS). -
When you're done, you can stop the Jupyter Notebook server by clicking the "Quit" button in the top-right corner of the interface or by pressing
Ctrl+C
in the terminal where you started the server.
Competitor Comparisons
Visual Studio Code
Pros of VS Code
- More versatile IDE supporting multiple languages and file types
- Extensive ecosystem of extensions for customization
- Integrated Git support and terminal
Cons of VS Code
- Steeper learning curve for beginners
- Requires more system resources than Jupyter Notebook
- Less intuitive for data exploration and visualization
Code Comparison
VS Code (settings.json):
{
"editor.fontSize": 14,
"python.linting.enabled": true,
"jupyter.alwaysTrustNotebooks": true
}
Jupyter Notebook (cell):
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('data.csv')
df.plot(x='Date', y='Value')
VS Code offers more extensive configuration options, while Jupyter Notebook provides a simpler interface for data analysis and visualization. VS Code's settings are typically managed through JSON files, whereas Jupyter Notebook's settings are often controlled through UI or cell magic commands.
IntelliJ IDEA Community Edition & IntelliJ Platform
Pros of intellij-community
- Comprehensive IDE with advanced features for multiple languages
- Powerful code analysis, refactoring, and debugging tools
- Extensive plugin ecosystem for customization
Cons of intellij-community
- Steeper learning curve due to complex interface and features
- Higher system resource requirements
- Less suitable for quick, interactive data exploration
Code Comparison
intellij-community (Java):
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
notebook (Python):
print("Hello, World!")
Key Differences
- intellij-community is a full-featured IDE, while notebook is focused on interactive computing
- notebook excels at data visualization and exploration, intellij-community offers more comprehensive development tools
- intellij-community supports multiple languages, notebook primarily targets Python and data science workflows
Use Cases
- intellij-community: Large-scale software development projects
- notebook: Data analysis, scientific computing, and interactive prototyping
Both repositories have active communities and regular updates, but they serve different purposes in the development ecosystem.
📘 The interactive computing suite for you! ✨
Pros of nteract
- Modern, user-friendly interface with a focus on desktop application experience
- Built-in support for multiple languages and kernels
- Extensible architecture allowing for easy plugin development
Cons of nteract
- Smaller community and ecosystem compared to Jupyter Notebook
- Less extensive documentation and learning resources
- May have fewer advanced features for specific scientific computing tasks
Code Comparison
nteract:
import { ContentRef } from "@nteract/core";
import { actions } from "@nteract/core";
// Create a new notebook
dispatch(actions.newNotebook({ kernelSpec: "python3", cwd: "/" }));
Jupyter Notebook:
from notebook.notebookapp import NotebookApp
# Start a new notebook server
app = NotebookApp()
app.initialize()
app.start()
Both projects aim to provide interactive computing environments, but they differ in their approach and implementation. nteract focuses on a modern, desktop-centric experience with a unified interface for multiple languages, while Jupyter Notebook offers a more traditional web-based interface with a strong emphasis on scientific computing and data analysis. The choice between the two depends on specific user needs and preferences.
JupyterLab computational environment.
Pros of JupyterLab
- More flexible and extensible interface with customizable layout
- Integrated file browser and terminal
- Support for multiple document types (notebooks, text files, etc.)
Cons of JupyterLab
- Steeper learning curve for new users
- May require additional extensions for some features
- Potentially higher resource usage
Code Comparison
Notebook:
from notebook import notebookapp
notebookapp.main()
JupyterLab:
from jupyterlab.labapp import main
main()
Both projects use similar core functionality, but JupyterLab offers a more modular and extensible architecture. The code differences are primarily in the user interface and extension system rather than core functionality.
JupyterLab provides a more modern and flexible development environment, while Notebook offers a simpler, more traditional interface. The choice between them depends on user preferences and specific project requirements.
Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more.
Pros of Zeppelin
- Multi-language support within a single notebook
- Built-in visualization tools and data exploration features
- Collaborative features for team-based data analysis
Cons of Zeppelin
- Steeper learning curve compared to Jupyter Notebook
- Less extensive ecosystem of extensions and plugins
- Requires more system resources to run
Code Comparison
Zeppelin (Scala):
%spark
val data = spark.read.csv("data.csv")
data.show()
Jupyter Notebook (Python):
import pandas as pd
data = pd.read_csv("data.csv")
data.head()
Both Zeppelin and Notebook offer interactive environments for data analysis and visualization. Zeppelin excels in multi-language support and built-in visualization tools, making it suitable for complex data science projects. Notebook, on the other hand, provides a more user-friendly interface and a vast ecosystem of extensions, making it ideal for beginners and a wide range of use cases.
Zeppelin's code cells can be executed in various languages within the same notebook, while Notebook typically uses a single kernel per notebook. Zeppelin's visualization capabilities are more advanced out-of-the-box, but Notebook's extensive library support allows for similar functionality through additional packages.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Jupyter Notebook
The Jupyter notebook is a web-based notebook environment for interactive computing.
Maintained versions
We maintain the two most recently released major versions of Jupyter Notebook, Classic Notebook v6 and Notebook v7. Notebook v5 is no longer maintained. All Notebook v5 users are strongly advised to upgrade to Classic Notebook v6 as soon as possible.
Upgrading to Notebook v7 may require more work, if you use custom extensions, as extensions written for Notebook v5 or Classic Notebook v6 are not compatible with Notebook v7.
Notebook v7
The newest major version of Notebook is based on:
- JupyterLab components for the frontend
- Jupyter Server for the Python server
This represents a significant change to the jupyter/notebook
code base.
To learn more about Notebook v7: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html
Classic Notebook v6
Maintenance and security-related issues only are now being addressed in the 6.5.x
branch.
It depends on nbclassic
for the HTML/JavaScript/CSS assets.
New features and continuous improvement is now focused on Notebook v7 (see section above).
If you have an open pull request with a new feature or if you were planning to open one, we encourage switching over to the Jupyter Server and JupyterLab architecture, and distribute it as a server extension and / or JupyterLab prebuilt extension. That way your new feature will also be compatible with the new Notebook v7.
Jupyter notebook, the language-agnostic evolution of IPython notebook
Jupyter notebook is a language-agnostic HTML notebook application for Project Jupyter. In 2015, Jupyter notebook was released as a part of The Big Split⢠of the IPython codebase. IPython 3 was the last major monolithic release containing both language-agnostic code, such as the IPython notebook, and language specific code, such as the IPython kernel for Python. As computing spans across many languages, Project Jupyter will continue to develop the language-agnostic Jupyter notebook in this repo and with the help of the community develop language specific kernels which are found in their own discrete repos.
Installation
You can find the installation documentation for the Jupyter platform, on ReadTheDocs. The documentation for advanced usage of Jupyter notebook can be found here.
For a local installation, make sure you have pip installed and run:
pip install notebook
Usage - Running Jupyter notebook
Running in a local installation
Launch with:
jupyter notebook
Running in a remote installation
You need some configuration before starting Jupyter notebook remotely. See Running a notebook server.
Development Installation
See CONTRIBUTING.md
for how to set up a local development installation.
Contributing
If you are interested in contributing to the project, see CONTRIBUTING.md
.
Community Guidelines and Code of Conduct
This repository is a Jupyter project and follows the Jupyter Community Guides and Code of Conduct.
Resources
- Project Jupyter website
- Online Demo at jupyter.org/try
- Documentation for Jupyter notebook
- Korean Version of Installation
- Documentation for Project Jupyter
- Issues
- Technical support - Jupyter Google Group
About the Jupyter Development Team
The Jupyter Development Team is the set of all contributors to the Jupyter project. This includes all of the Jupyter subprojects.
The core team that coordinates development on GitHub can be found here: https://github.com/jupyter/.
Our Copyright Policy
Jupyter uses a shared copyright model. Each contributor maintains copyright over their contributions to Jupyter. But, it is important to note that these contributions are typically only changes to the repositories. Thus, the Jupyter source code, in its entirety is not the copyright of any single person or institution. Instead, it is the collective copyright of the entire Jupyter Development Team. If individual contributors want to maintain a record of what changes/contributions they have specific copyright on, they should indicate their copyright in the commit message of the change, when they commit the change to one of the Jupyter repositories.
With this in mind, the following banner should be used in any source code file to indicate the copyright and license terms:
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
Top Related Projects
Visual Studio Code
IntelliJ IDEA Community Edition & IntelliJ Platform
📘 The interactive computing suite for you! ✨
JupyterLab computational environment.
Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot