Lekce 1 - 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áší a 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ů Základní konstrukce jazyka Python a Objektově orientované programování v Pythonu.
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 ufunc
označ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 movněž 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 máme 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 zmíněný 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 jedno z mnoha možných. Zcela na nás je, jestli si raději zvolíme jiné IDE jako například PyCharm nebo VS Code. Na práci s NumPy to nemá vliv.
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, Datové typy, si povíme něco o základních datových typech knihovny NumPy, k čemu je můžeme využít a jak s nimi pracovat.