NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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 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 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:

Menu v prostředí Jupyter Notebook - NumPy - Matematika v Pythonu

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:

Nový neoznačený Jupyter Notebook. - NumPy - Matematika v Pythonu

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:

Obrázek prvního vytvořeného Jupyter Notebooku. - NumPy - Matematika v Pythonu

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.


 

Všechny články v sekci
NumPy - Matematika v Pythonu
Přeskočit článek
(nedoporučujeme)
Datové typy
Článek pro vás napsal Miloš Halda
Avatar
Uživatelské hodnocení:
16 hlasů
Autor se věnuje především bioinformatice a s ní souvisejícím tématům. Nevyhýbá se OOP jazykům, statistice a nástrojům pro analýzu dat.
Aktivity