Lekce 1 - NumPy - Představení knihovny
V tomto kurzu programovacího jazyka Python se zaměříme na knihovnu NumPy. Nejprve si vysvětlíme, k čemu se knihovna používá a jak knihovnu NumPy nainstalovat. Ukážeme si, jaké nové datové typy knihovna NumPy přináší. Vyzkoušíme si možnosti, které knihovna poskytuje pro efektivní práci se seznamy v Pythonu. Dále se naučíme pracovat také s matematickými funkcemi, které tato knihovna poskytuje.
Předpoklady pro zvládnutí kurzu
Abychom dobře pochopili, jak knihovna NumPy funguje a co nám poskytuje za možnosti, je potřeba mít znalosti na úrovni kurzů:
Co je NumPy?
Numpy je knihovna programovacího jazyka Python, která se používá zejména pro rychlejší práci se seznamy. Jak sám název NumPy napovídá, knihovna nachází hojné využití všude, kde se pracuje s čísly a matematickými funkcemi.
Seznamy v Pythonu vs NumPy
arrays
Po absolvování základů v Pythonu víme, že Python sám nabízí seznamy,
které je možné použít i bez importování dalších knihoven. V čem tedy
spočívá zásadní výhoda knihovny NumPy? V tom, že NumPy používá
efektivnější algoritmy, což umožňuje rychlejší běh
programu. Tento rozdíl se neprojeví tolik u malých seznamů v řádu desítek
položek. Diametrálně jiné je to ale u větších datasetů
v řádech tisíců položek, na kterých provádíme komplikované výpočty.
Rozdíl mezi NumPy algoritmy a nativními seznamy Pythonu jsou v
řádech desítek vteřin až minut na jeden běh programu.
Kromě toho je kód s využitím takzvaných ufunc
čitelnější a stručnější, ale o tom si
více řekneme v dalších lekcích.
Termín ufuncoznačuje třídu univerzálních
funkcí v knihovně NumPy, které efektivně a rychle provádějí elementární
operace na polích pomocí vektorizace.
Oproti standardní terminologii Pythonu, který pole označuje jako "seznam",
má Numpy vlastní přístup. V kontextu knihovny NumPy se obvykle používá
místo "seznamu" termín "pole" (v angličtině "array"). Toto je způsobené
tím, že NumPy pracuje s vlastní datovou strukturou zvanou
ndarray, která je sice podobná seznamům v Pythonu, ale má
více dimenzí a je navržena pro efektivní výpočty
a manipulaci s daty. NumPy pole podporují větší množství operací
a mají více vlastností než obyčejné Python seznamy. Proto v kontextu NumPy
mluvíme o "polích" místo o "seznamech". Tyto dva termíny je třeba
důsledně odlišovat v rámci kontextu výkladu.
Knihovny využívané s NumPy
V programovacím jazyce označuje knihovna soubor funkcí, které už někdo přichystal před námi a uložil je do proměnných v rámci konkrétní knihovny. V praxi nám to ušetří spoustu času a řádků v kódu, neboť nemusíme psát celou funkci znovu. Stačí nám zavolat si konkrétní funkci z konkrétní knihovny. NumPy je samostatnou knihovnou, ale abychom plně ocenili její funkce, je dobré při práci s ní využít ještě několika dalších knihoven.
Matplotlib
Knihovnu Matplotlib využijeme ve chvíli, kdy budeme chtít vizualizovat naše data. Umožní nám vytvořit celou škálu grafů, od korelačního diagramu scatterplotu, přes histogram a krabicový graf boxplot, až po složitější systémy souřadnic. MatPlotLib rovněž dokáže tyto vizualizace barevně upravovat, zoomovat, případně umí i upravit jejich škálu.
Pandas
Při použití NumPy ve statistice se brzy dostaneme do fáze, kdy už nám jednoduchá pole nebudou stačit. V tu chvíli oceníme knihovnu Pandas, která poskytuje nástroje pro práci s daty a tabulkami (pro zjednodušení - Pandas je takový Excel v Pythonu).
Detaily a podrobnosti práce s knihovnou Pandas nalezneme v kurzu Pandas - Vizualizace dat v Pythonu.
Ostatní
Kromě výše zmíněných existuje celá řada dalších knihoven, které mají podobné funkce, či rozšiřují možnosti naší práce s knihovnou NumPy jiným směrem. Například knihovna SciPy poskytuje mnoho dalších matematických funkcí včetně geometrie v prostoru či pravděpodobnostních funkcí.
Instalace NumPy
Instalace knihovny NumPy je velice snadná. Zvolíme si jednu ze dvou níže popsaných metod - buď pomocí nástroje PIP, nebo pomocí programu Anaconda.
Instalace pomocí PIP
Do příkazové řádky jednoduše napíšeme příkaz níže:
pip install numpy
Po chvilce se nainstaluje nejnovější verze knihovny NumPy.
Nainstalujme si i knihovnu Matplotlib:
pip install matplotlib
Instalace pomocí Anacondy
Pro začátečníky je tato varianta instalace jednodušší, neboť skrz Anacondu můžeme do našeho Pythonu stáhnout i další užitečné knihovny a programy. Na stránce Anaconda.com si stáhneme verzi pro náš operační systém. Dostupné jsou pro Windows, MacOS i Linux. Následně program spustíme a zahájíme instalaci. Vybereme složku, kam Anacondu stáhneme a necháme všechna zaškrtávací políčka v defaultním stavu. Políčko Add anaconda to my PATH environment variable ponecháme nezaškrtnuté. Po dokončení instalace máme NumPy v našem Pythonu připravený k práci.
Jupyter Notebook
Jedním z nejoblíbenějších prostředí pro vytváření projektů s NumPy je Jupyter Notebook. Jedná se o aplikaci využívající prostředí prohlížeče, do které píšeme svůj kód v Pythonu. Prostředí, jak už název napovídá, skutečně připomíná poznámkový blok a je uživatelsky velice přívětivé.
Prostředí Jupyter Notebook je jen jednou z mnoha možností. Je zcela na nás, zda zvolíme jiné IDE, jako například PyCharm, VS Code nebo pokročilejší a komplexnější verzi Jupyter Notebooku – JupyterLab. Samotné fungování knihoven, jako je NumPy, zůstává ve všech prostředích stejné, ale způsob zobrazení výstupů se může lišit v závislosti na formátování nebo nastavení konkrétního IDE.
Jupyter Notebook nainstalujeme také pomocí PIP:
pip install notebook
Vytvoření projektu
Jupyter Notebook si spustíme buď skrz příkazovou řádku, nebo Anacondu. Pro otevření příkazového řádku stačí v počítači vyhledat cmd a kliknout na něj. Jakmile se nám příkazový řádek otevře, zadáme do něj:
python -m notebook
Po pár sekundách se nám Jupyter Notebook otevře jako nová záložka v prohlížeči.
Pokud jsme si stáhli Anacondu, lze Jupyter Notebook také otevřít pomocí aplikace Anaconda Navigator. Po spuštění Anacondy si v hlavním menu aplikace najdeme dlaždici Jupyter Notebook a klikneme na Launch. Opět se nám objeví nová záložka v našem prohlížeči:

Nyní si vytvoříme nový projekt. V pravém horním rohu klikneme na New, čímž se nám rozbalí lišta. Hned jako první máme možnost Python 3. Tu vybereme a otevře se nám nový projekt:

Import NumPy
V samotném Pythonu poté na začátku našeho kódu (bez ohledu na použité
IDE) importujeme NumPy pomocí příkazu import. Tradičně se
NumPy importuje pod zkratkou np, pro práci to však není
podmínkou. Kromě NumPy si importujeme ještě modul pyplot z
knihovny Matplotlib, pomocí kterého si dokážeme vizualizovat
obsah v našich polích. Pro pyplot se
běžně používá zkratka plt:
import matplotlib.pyplot as plt import numpy as np
Stiskem kláves Shift + Enter potvrdíme import knihoven. V tuto chvíli náš Jupyter Notebook vypadá takto a my jsme připraveni s ním začít pracovat:

Knihovnu i pracovní prostředí tedy máme připravené a můžeme se pustit do práce. To je pro tuto lekci vše.
V příští lekci, NumPy - Datové typy, se na příkladech naučíme základní datové typy knihovny NumPy.

