Jupyter notebook a základy Pythonu
Contents
1. Jupyter notebook a základy Pythonu#
*.ipynb
pro pozdější off-line editaci v prostředí Anaconda, nebo pro on-line editaci v Google Colab.1.1. Interaktivní Jupyter notebook#
Napište print('Hello, World!')
a stiskněte Shift
+
Enter
(nebo Ctrl
+
Enter
)
# print
Pomocí klávesy b
vložíte další řádek do JP.
Stiskněte
b
.
Odstranění řádku: vyberte řádek v JP a stiskněte d
+
d
Klávesou a
vložíte nový řádek nad právě vybraný.
Stiskněte
a
.Vyberte tento nový řádek a stiskněte
m
. Nyní lze do řádku místo kódu zapisovat text,Zadávání ukončíte stisknutím kombinace
Shift
+
Enter
.Pokud chcete řádek převést na kód, stiskněte
y
.
Pro nápovědu stiskněte h
.
1.2. Python#
Jednořádkový komentář se zadává za znak #
, více řádků lze zakomentovat pomocí """
a """
:
# toto je komentar
Inicializace proměnných a
, b
, základní aritmetické operace a výpis výsledku pomocí funkce print()
:
# zakladni aritmeticke operace
# Cviceni 01.01
1.3. Podmínkové cykly#
1.3.1. If … else#
Za klíčovými slovy if
a else
musíme psát :
.
# if, else
1.3.2. For …#
Zde využijeme funkci range(min,max,krok)
, která vytvoří sekvenci celých čísel od min
po max
(prvek max není v sekvenci obsažen) s uvedeným krokem. Výchozí hodnoty jsou min = 0
a krok = 1
.
# for
1.3.3. While…#
# while
1.3.4. Break#
Pomocí příkazu break
se ukončí probíhající cyklus. Pokud je cyklus vnořený, ukončí se pouze tento vnořený cyklus. V následujícím příkladu využijeme funkci len()
která nám vrátí délku seznamu vytvořeného pomocí range()
.
# Ze seznamu cislic 0,1,2,... chci vypsat pouze prvni dve cislice.
1.3.5. Continue#
Příkaz continue
ukončí aktuální iteraci v cyklu a pokračuje další iterací.
# Ze seznamu cislic 0,1,2,... chci vypsat vsechny cislice, krome dvojky.
1.4. Funkce#
Funkce se definuje příkazem def
. Následuje jméno funkce, seznam vstupních parametrů a vše je zakončené :
. Tělo funkce musí být odsazené. Funkce může vrátit hodnotu pomocí příkazu return
.
# funkce
# Cviceni 01.02
1.5. Numerická knihovna numpy#
Pro import numerické knihovny numpy
použijeme příkaz:
import numpy as np
1.5.1. Maticové operace#
Pole (vektor, matice) lze vytvářet pomocí funkce array()
:
# vektor
# matice (pole)
array
má první prvek index 0!Rozměry pole zjistíme pomocí funkce shape
:
# shape
Funkce size
vrátí počet prvků v poli:
# size
Matici lze transponovat funkcí transpose()
:
# transpose
Pro vytváření polí lze používat následující generátory:
Pomocí funkce
arange()
vytvoříme pole s prvky od 0 do 10 (poslední prvek není obsažen) a krokem 1:
# arange
Pomocí funkce
linspace()
vygenerujeme pole s prvky od 0 do 10 (včetně), přičemž počet prvků je 20:
# linspace
Příkazem
logspace()
vytvoříme pole od 0 do 10 s počtem prvků 20 v logaritmickém měřítku (\(\log_{10}\)):
# logspace
Pomocí funkce
zeros()
vytvoříme nulovou matici 2x2:
# zeros
Funkcí
ones()
vytvoříme jednotkovou matici 3x3:
# ones
Pomocí funkce
eye()
vytvoříme matici 3x3 s jedničkami na diagonále, ostatní hodnoty jsou nulové:
# eye
Pole náhodných čísel v rozmezí 0 az 1 se vygeneruje pomocí funkce
np.random.rand()
:
# random
Pro přístup k prvkům pole A
používáme syntaxi A[i,j]
, kde i
je index řádku a j
je index sloupce:
# pole
Pro přístup k prvkům pole používáme syntaxi [min:max:krok]
. Mějme vektor \(\mathbf{v}=(0,1,2,3,4,5,6)\). Nyní z něj vyjmeme první (“0”) až šestý prvek (“5”), a to s krokem 2:
# pole - vyber
Podobně u matice \(A\) vybereme např. poslední dva prvky ve třetím sloupci.
# pole - vyber
U matice \(A\) vybereme první řádek:
# pole - vyber
U matice \(A\) vybereme první sloupec:
# pole - vyber
Násobení matic a vektorů se provádí pomocí operátoru dot
:
# matice 2x3
# matice 3x2
# vysledek
# maticove nasobeni
# nasobeni po prvcich
1.5.2. Funkce#
numpy
obsahuje často používané funkce a konstanty (napr. sqrt()
, log()
, log10()
, sin()
, abs()
, e
, pi
, …):
# numpy - funkce
Součet prvků v poli je dán funkcí sum()
:
# soucet prvku v poli
Minimální a maximální hodnotu v poli určíme funkcí min()
a max()
:
# maximalni hodnota v poli
# minimalni hodnota v poli
Funkce average()
vrací průměrnou hodnotu; std()
je směrodatná odchylka a var()
je rozptyl:
# prumerna hodnota
# smerodatna odchylka
# rozptyl
Index prvku v poli lze najít pomocí funkce argwhere()
:
# argwhere
numpy
lze nalézt na https://numpy.org/.1.6. Visualizace dat#
Pro kreslení grafů využijeme knihovnu matplotlib.pyplot
:
import matplotlib.pyplot as plt
1.6.1. Graf jedné proměnné#
Vygenerujeme \(x\) a \(y\) hodnoty pro funkci sin()
:
# hodnoty x a y
Nejdříve je potřeba vytvořit obrázek pomocí fig
. Vykreslení dat provedeme příkazem plot()
:
# vykresleni x,y
Přidáme popisky os pomocí set_xlabel()
, set_ylabel()
a název grafu pomocí set_title()
:
# popisky os, nazev grafu
Přidáme funkci cos()
, nastavíme barvu (color
), styl (linestyle
) a šířku (linewidth
) linky. Průhlednost se nastavuje parametrem alpha
. Legendu zobrazíme příkazem legend()
:
# funkce cos()
# vykreslime funkci cos()
Na závěr obrázek uložíme příkazem savefig()
:
# ulozeni obrazku
1.6.2. Visualizace závislosti dvou proměnných#
Mějme funkci \(z(x,y)\), která závisí na dvou proměnných \(z(x,y)=\exp(-\sqrt{x^2+y^2})\cos(2x)\sin(2y)\), a vykreslíme její závislost v 2D grafu.
Vytvoříme mřížku \(x\times y\) pomocí funkce meshgrid()
:
# meshgrid
Spočítáme hodnoty funkce \(z(x,y)\):
# hodnoty z
2D graf vykreslíme pomocí funkce pcolor()
s parametrem shading='auto'
:
# vykresleni dat
Kontury získáme použitím funkce contour()
:
# contour
1.6.3. 3D visualizace#
Máme stejnou funkci \(z(x,y)=\exp(-\sqrt{x^2+y^2})\cos(2x)\sin(2y)\), kterou nyní chceme vykreslit v 3D grafu. Nejdříve vytvoříme trojrozměrnou osu:
# 3D graf
Vytvoříme mřížku \(x\times y\) pomocí funkce meshgrid
:
# meshgrid
Spočítáme hodnoty funkce \(z(x,y)\):
# hodnoty z
3D data vykreslíme pomocí funkce plot_surface()
a přidáme popisky os:
# vykresleni dat - plot_surface
# Cviceni 01.03
matplotlib
lze nalézt na https://matplotlib.org/.