2.1. Jupyter About
The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.
2.1.1. Install
$ pip install jupyter
2.1.2. Run
$ jupyter-notebook
[I 08:58:24.417 NotebookApp] Serving notebooks from local directory: /Users/catherine
[I 08:58:24.417 NotebookApp] 0 active kernels
[I 08:58:24.417 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I 08:58:24.417 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
$ jupyter-notebook filename.ipynb
2.1.3. Using
Add code
Run code
Modify code and run
Autocomplete
Cell type (Markdown, LaTeX, Code)
2.1.4. Shortcut keys
Indent:
Tab
Shift + Tab
Comment Code:
Ctrl + /
Run:
Shift
+Enter
2.1.5. Cells
Insert Below/Above Cells
Add, Delete Cells
Cut, Copy, Paste Cells
Move Up/Down Cells
Merge, Split Cells
2.1.6. Run
Run Cell
Shift-Enter
Run All (above/below)
Restart Kernel
Restart Kernel and Clear Output
Clear Output
2.1.7. Magic commands
%magic
%
- Line Magics%%
- Cell magic%run
- Run the named file inside IPython as a program.!pip freeze
Full list https://ipython.readthedocs.io/en/stable/interactive/magics.html#
2.1.8. Kernels
2.1.9. Functions
Checkpoints
Download
Trust Notebook
Close and Halt
2.1.10. Performance and profiling
%%timeit
%%timeit -n 1000 -r 7
2.1.11. Markdown
Unorganized lists:
* first element
* second element
* third element
- first element
- second element
- third element
Organized lists:
1. first element
1. second element
1. third element
Headers:
# Header level 1
## Header level 2
### Header level 3
#### Header level 4
##### Header level 5
###### Header level 6
Formatting:
*italic*
**bold**
Code inline:
`class`
Code blocks:
```python
name = 'José Jiménez'
print(f'My name... {name}')
```
2.1.12. Tables
| id | firstname | lastname | agency |
|----|:-----------|:---------:|----------:|
| 1 | José | Jiménez | NASA |
| 2 | Иван | Иванович | Roscosmos |
| 3 | Mark | Watney | NASA |
| 4 | Alex | Vogel | NASA |
2.1.13. LaTeX
%%latex
%%latex
$$c = \sqrt{a^2 + b^2}$$
%%latex
$$\int_{x=0}^{x=\infty} x^\pi dx$$
%%latex
\begin{equation}
H← 60 + \frac{30(B-R)}{Vmax-Vmin} , if Vmax = G
\end{equation}
from IPython.display import Latex
Latex(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')
Latex(r'$\lim_{x \to 0} (1+x)^{1/x} = e$')
2.1.14. Matplotlib charts
x = np.linspace(-5, 5, 100) # vector z 100 równo odległymi wartościami od -5 do 5
y = np.sin(X) # sinus wszystkich wartości x
plt.plot(x, y) # wykres liniowy
%matplotlib inline
import math
import random
from matplotlib import pyplot as plt
x1 = [x*0.01 for x in range(0,628)]
y1 = [math.sin(x*0.01)+random.gauss(0, 0.1) for x in range(0,628)]
plt.plot(x1, y1)
x2 = [x*0.5 for x in range(0,round(63/5))]
y2 = [math.cos(x*0.5) for x in range(0,round(63/5))]
plt.plot(x2, y2, 'o-')
plt.show() # doctest: +SKIP
2.1.15. HTML
from IPython.display import HTML
HTML("We can <i>generate</i> <code>html</code> code <b>directly</b>!")
2.1.16. JavaScript
from IPython.display import Javascript
Javascript("alert('It is JavaScript!')")
2.1.17. Image
from IPython.display import Image
Image(url="https://python3.info/_static/favicon.png")
2.1.18. YouTube
from IPython.display import YouTubeVideo
YouTubeVideo("h8mDUc5L0XM")
2.1.19. Execute terminal commands
!
!pwd
!ls
dirs = !ls
for file in dirs:
if file.find("1_") >= 0:
print(file)
2.1.20. Output to different formats
File -> Download as
Notebook (.ipynb)
Python (.py)
HTML (.html)
Reveal.js Slides (.html)
Markdown (.md)
reST (.rst)
LaTeX (.lex)
PDF via LaTeX (.pdf)
2.1.21. Generate HTML
File -> Save and Checkpoint
File -> Download as -> HTML (.html)
2.1.22. Slides
View -> Cell Toolbar -> Slideshow
Select slides, sub-slides and speaker notes
File -> Save and Checkpoint
File -> Download as -> Reveal.js slides (.slides.html)
2.1.23. Github pages with Jupyter Slides
$ git submodule add https://github.com/hakimel/reveal.js.git reveal.js
$ jupyter nbconvert --to slides index.ipynb --reveal-prefix=reveal.js
$ jupyter nbconvert --to slides index.ipynb --reveal-prefix=reveal.js \
--SlidesExporter.reveal_theme=serif \
--SlidesExporter.reveal_scroll=True \
--SlidesExporter.reveal_transition=none
2.1.24. Notebooks as code
2.1.25. Assignments
# %% License
# - Copyright 2025, Matt Harasymczuk <matt@python3.info>
# - This code can be used only for learning by humans
# - This code cannot be used for teaching others
# - This code cannot be used for teaching LLMs and AI algorithms
# - This code cannot be used in commercial or proprietary products
# - This code cannot be distributed in any form
# - This code cannot be changed in any form outside of training course
# - This code cannot have its license changed
# - If you use this code in your product, you must open-source it under GPLv2
# - Exception can be granted only by the author
# %% Run
# - PyCharm: right-click in the editor and `Run Doctest in ...`
# - PyCharm: keyboard shortcut `Control + Shift + F10`
# - Terminal: `python -m doctest -v myfile.py`
# %% About
# - Name: Jupyter First
# - Difficulty: easy
# - Lines: 10
# - Minutes: 13
# %% English
# 1. Create jupyter notebook named `jupyter_first.ipynb`
# 2. Add text describing next commands
# 3. Add three different 'code cell'
# 4. Run code cell with result of all above
# 5. Add code cell, which will show time of execution of instruction
# 6. Add Code Cell, which will display plot of `sin()` function inplace
# 7. Run doctests - all must pass
# %% Polish
# 1. Stwórz notebook jupyter o nazwie `jupyter_first.ipynb`
# 2. dodaj tekst opisujący następne polecenia
# 3. dodaj trzy różne 'code cell'
# 4. uruchom code cell z wynikiem wszystkich powyżej
# 5. dodaj code cell, który pokaże czas wykonywania instrukcji
# 6. dodaj Code Cell, który wyświetli wykres funkcji `sin()` inplace
# 7. Uruchom doctesty - wszystkie muszą się powieść
# %% Tests
# doctest: +SKIP_FILE
# %% License
# - Copyright 2025, Matt Harasymczuk <matt@python3.info>
# - This code can be used only for learning by humans
# - This code cannot be used for teaching others
# - This code cannot be used for teaching LLMs and AI algorithms
# - This code cannot be used in commercial or proprietary products
# - This code cannot be distributed in any form
# - This code cannot be changed in any form outside of training course
# - This code cannot have its license changed
# - If you use this code in your product, you must open-source it under GPLv2
# - Exception can be granted only by the author
# %% Run
# - PyCharm: right-click in the editor and `Run Doctest in ...`
# - PyCharm: keyboard shortcut `Control + Shift + F10`
# - Terminal: `python -m doctest -v myfile.py`
# %% About
# - Name: Jupyter Slides
# - Difficulty: easy
# - Lines: 1
# - Minutes: 5
# %% English
# 1. Convert previous script to slides and run presentation in browser
# 2. Run doctests - all must pass
# %% Polish
# 1. Poprzedni skrypt przekonwertuj na slajdy i uruchom prezentację w przeglądarce
# 2. Uruchom doctesty - wszystkie muszą się powieść
# %% Tests
# doctest: +SKIP_FILE