The ipynb Jupyter Notebook File Extension
The *.ipynb
file extension is used for computational notebooks that can be open with Jupyter Notebook. The Jupyter Notebook was formerly named IPython Notebook. The extension *.ipynb
is from letters IPython Notebook. The IPython was developed as a command shell for interactive computing in Python programming language. It offers introspection, rich media, shell syntax, tab completion, and history.
What is inside ipynb
file?
You can open the *.ipynb
file with any text editor. The file contains the JSON object. It has information about input code, that is formed in cells, and information about code execution result (the output).
Below is the example notebook.ipynb
file presented as plain text:
{
"cells": [
{
"cell_type": "markdown",
"id": "d343b0f6",
"metadata": {},
"source": [
"## Hello world!"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "2c787a5c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"This is ipynb file\n"
]
}
],
"source": [
"print(\"This is ipynb file\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"language": "python",
"name": "venv"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Please note that there are cells
in the JSON. Each cell
could be the Markdown, plain text (raw cells) or Python code. The code cell
has outputs
which represent the execution result. The file containes the metadata
information about kernel and language that was used to create the notebook. Let's look closer how the file will look like in the Jupyter Notebook application:
The Jupyter application reads the JSON file and present it in the human readable format. It is worth to mention that Markdown text can be mixed with Python code. This gives huge flexibility for writing computational documents and reports.
How to open ipynb
file?
As you see in previous paragraph the ipynb
file can be opened even in a text editor, but what applications can be used to open the file in human friendly format?
The list of applications that can render the notebook and allows the edit:
- Jupyter Notebook
- Jupyter Lab
- Jupyter Lab Desktop
- VS Code with Jupyter Extension
- PyCharm and DataLore
The list of cloud based services for opening the notebook (you can upload the notebook to the service to render/edit it):
- CoCalc
- Deepnote
- Kaggle Kernels
- Google Colaboratory
It is important to mention that there are also services that allow to only render the notebook. The most popular is nbviewer. It can render any notebook that is available online.
If you add ipynb
file to the GitHub repository, the GitHub website will render the notebook.
Convert ipynb
to other formats or web app
The ipynb
files can be converted into many formats. They can be easily converted to HTML or PDF files (directly in Jupyter application).
There is a package jupytext that can be used to convert ipynb
to plain Python files (.py
).
If you would like to share the ipynb
as interactive web app, then the Mercury framework can be a good choice. It allows to convert a notebook to web app. Just add YAML header as a raw cell in the notebook to add widgets for the notebook.