Bardzo często mówi się, że Python może być znakomitą alternatywą dla narzędzi takich jak Matlab czy Mathematica, głównie ze względu na to, że jest względnie szybki, łatwy do nauczenia, darmowy i posiada niezliczone biblioteki rozszerzające jego możliwości. Jedną z nich jest Jupyter i jego notebook, który pozwala na tworzenie interaktywnych arkuszy mogących zawierać kod wykonywalny, opisy, tabele, wykresy i wiele innych danych, które służyć mogą nam między innymi do prezentacji wyników naszych prac.

Instalacja Jupyter’a
Pracę z Jupyterem, jak łatwo się domyślić, zaczynamy od zainstalowania go w naszym środowisku. Wykorzystamy do tego Pythonowy instalator pakietów pip, posługując się następującą komendą w naszym terminalu:
pip install jupyter
Jeżeli instalacja przebiegła bez żadnych problemów będziemy mogli uruchomić nasz notebook. Wpisując w terminalu:
jupyter notebook
Po chwili powinniśmy zobaczyć w przeglądarce stronę startową naszego notebooka.

Jupyter działa na zasadzie usługi sieciowej na postawionym przez siebie serwerze (domyślnie w lokalizacji localhost:8888), dzięki temu otrzymujemy między innymi dostęp przez przeglądarkę.
Dokumentację Jupyter znajdziesz tutaj
Pora zacząć zabawę
Jeżeli wszystko działa tak jak należy to najwyższa pora aby przekonać się na własnej skórze o możliwościach Jupytera. Zacznijmy od stworzenia nowego arkusza. W tym celu na stronie startowej klikamy przycisk New
i wybieramy Python 3
.
Na dobry początek warto nazwać nasz arkusz, kliknij w napis Untitled na samej górze strony i zamiast niego wpisz „PrintPython”.
Każdy arkusz w Jupyterze składa się z kolejnych komórek, mogą one być różnego typu np. zawierać kod napisany w Pythonie lub w Markdownie, ten pierwszy jest typem domyślnym.
W pierwszej komórce, która jak na razie jest pusta, wpiszmy krótkie przywitanie
print("Witaj Jupyterowy świecie")
Następnie kliknij w znajdujący się nieco wyżej przycisk run
, który uruchomi obecnie aktywną komórkę, aby zobaczyć wynik działania naszego kodu.
Wykonując kod w komórce Jupyter automatycznie oznaczył nam kolejność w jakiej były uruchamiane poszczególne komórki, oraz dodał pod spodem nową komórkę.
Zmieńmy typ kolejnej komórki tak aby mogła ona zawierać tekst sformatowany znacznikami Markdown. Kliknij w pole wyboru typu w górnym menu i zmień Code na Markdown. Teraz w komórce wpisz następujący kod i ją uruchom.
# Co może notebook:
- wszystko
- jeszcze więcej
Możemy również dodawać wzory atematyczne posługując się składnią języka Latex i umieszczając je między znacznikami $ $
$y = sin(\frac{x^2}{2})$
W kolejnej komórce zadeklarujmy sobie dwie zmienne i uruchommy ją
x = 4
y = 7
W nowej komórce wypisz sumę tych dwóch zmiennych, następnie wróć do poprzedniej komórki i zmień jedną ze zmiennych. Teraz uruchom jeszcze raz komórkę, która wypisuje sumę.
Możesz też dodać następną komórkę która podmieni jedną z naszych zmiennych, a potem jeszcze raz uruchom komórkę która wypisywała sumę.
Jak widzisz możliwe jest wykonywanie kawałków kodu w dowolnej kolejności, a w szczególności łatwe wracanie do poprzednich komórek. Pozwala to na bardzo wygodne prototypowanie kodu.
Matplotlib – czyli wykresy w Pythonie
Korzystając z Jupytera, często będziemy chcieli stworzyć notebook, który będzie pełnił rolę raportu bądź sprawozdania dotyczącego jakiegoś zagadnienia. W takiej sytuacji niejednokrotnie będziemy potrzebować umieścić w nim wykres. Do tego zadania wykorzystamy bibliotekę Matplotlib.
Spróbujmy wykonać w naszym notebooku następujący kawałek kodu
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.01)
y = np.sin(x*x)
plt.plot(x, y)

W wyniku jego działania powinniśmy uzyskać sinusoidę. Jeżeli nie masz zainstalowanej biblioteki matplotlib lub numpy, możesz zainstalować je wpisując w notebooku komendę
! pip install matplotlib numpy
Jest to możliwe ze wzglądu na to, że jupyter umożliwia wykonywanie poleceń powłoki poprzedzając je znakiem „!”, tak samo jak ma to miejsce w IPythonie.
Warto również ustawić tryb wyświetlania wykresów, można do tego użyć komendy wpisanej na początku notebooka
%matplotlib inline
lub
%matplotlib notebook
Zazwyczaj ten pierwszy jest domyślny natomiast drugi pozwala na nieco więcej interakcji.
Czy to wszystko co umie Jupyter?
W tym artykule poznaliśmy część możliwości jakie daje nam Jupyter, dzięki którym jesteśmy w stanie stworzyć arkusz który prezentować może wyniki naszej pracy lub ułatwić nam opracowywanie jakiegoś zagadnienia. W następnej części z tej serii dowiemy się między innymi jak usprawnić naszą pracę z notebookiem oraz jak stworzyć prezentacje wykorzystując narzędzie
Kolejny wpis z tej serii jest dostępny pod tym linkiem
Zachęcam Cię również do komentowania tego wpisu, daj znać czego jeszcze chcesz dowiedzieć się na temat Jupyter notebooka.
Jeżeli zaczynasz swoją przygodę z Pythonem i szukasz osoby, która Ci w niej pomoże – zajrzyj na stronę O Blogu.
Sprawdź też najnowsze wpisy na moim blogu:
2 komentarze
Powyższy post porusza bardzo ciekawe kwestie. Dziękuję Jędrzeju za tak pomocne wprowadzenie. PrintPython to mój najulubieńszy blog o programowaniu !!
Zgodzę się tu, że Python to jeden z łatwiejszych do nauczenia się języków programowania. Warto od takich właśnie zacząć i z czasem opanowywać coraz bardziej zaawansowane techniki programowania.