1. diel - NumPy - Predstavenie knižnice
V tomto kurze programovacieho jazyka Python sa zameriame na knižnicu NumPy. Najprv si vysvetlíme, na čo sa knižnica používa a ako knižnicu NumPy nainštalovať. Ukážeme si, aké nové dátové typy knižnica NumPy prináša. Vyskúšame si možnosti, ktoré knižnica poskytuje pre efektívnu prácu so zoznamami v Pythone. Ďalej sa naučíme pracovať aj s matematickými funkciami, ktoré táto knižnica poskytuje.
Predpoklady pre zvládnutie kurzu
Aby sme dobre pochopili, ako knižnica NumPy funguje a aké nám poskytuje možnosti, je potrebné mať znalosti na úrovni kurzov:
Čo je NumPy?
Numpy je knižnica programovacieho jazyka Python, ktorá sa používa najmä na rýchlejšiu prácu so zoznamami. Ako názov NumPy napovedá, knižnica nachádza hojné využitie všade, kde sa pracuje s číslami a matematickými funkciami.
Zoznamy v Pythone vs NumPy
arrays
Po absolvovaní základov v Pythone vieme, že Python ponúka zoznamy, ktoré
je možné použiť aj bez importovania ďalších knižníc. V čom teda
spočíva zásadná výhoda knižnice NumPy? V tom, že NumPy používa
efektívnejšie algoritmy, čo umožňuje rýchlejší beh
programu. Tento rozdiel sa neprejaví až tak ako pri malých zoznamoch rádovo
v desiatkach položiek. Diametrálne iné je to ale pri väčších
datasetoch rádovo v tisícoch položiek, na ktorých robíme
komplikované výpočty. Rozdiel medzi NumPy algoritmami a natívnymi zoznamami
Pythonu sú v desiatkach sekúnd až minút na jeden beh
programu. Okrem toho je kód s využitím takzvaných ufunc
čitateľnejší a stručnejší, ale o tom si
viac povieme v ďalších lekciách.
Termín ufunc označuje triedu univerzálnych
funkcií v knižnici NumPy, ktoré efektívne a rýchlo vykonávajú
elementárne operácie na poliach pomocou vektorizácie.
Oproti štandardnej terminológii Pythonu, ktorá pole označuje ako
"zoznam", má Numpy vlastný prístup. V kontexte knižnice NumPy sa obvykle
používa namiesto "zoznamu" termín "pole" (v angličtine "array"). To je
spôsobené tým, že NumPy pracuje s vlastnou dátovou štruktúrou zvanou
ndarray, ktorá je síce podobná zoznamom v Pythone, ale má
viac dimenzií a je navrhnutá pre efektívne výpočty
a manipuláciu s dátami. NumPy poľa podporujú väčšie množstvo
operácií a majú viac vlastností ako obyčajné Python zoznamy. Preto v
kontexte NumPy hovoríme o "poliach" namiesto o "zoznamoch". Tieto dva termíny
je potrebné v rámci kontextu výkladu dôsledne odlišovať.
Knižnice využívané s NumPy
V programovacom jazyku označuje knižnica súbor funkcií, ktoré už niekto prichystal pred nami a uložil ich do premenných v rámci konkrétnej knižnice. V praxi nám to ušetrí veľa času a riadkov v kóde, pretože nemusíme písať celú funkciu znova. Stačí nám zavolať si konkrétnu funkciu z konkrétnej knižnice. NumPy je samostatnou knižnicou, ale aby sme plne ocenili jej funkcie, je dobré pri práci s ňou využiť ešte niekoľko ďalších knižníc.
Matplotlib
Knižnicu Matplotlib využijeme vo chvíli, keď budeme chcieť vizualizovať naše dáta. Umožní nám vytvoriť celú škálu grafov, od korelačného diagramu scatterplotu, cez histogram a krabicový graf boxplot, až po zložitejšie systémy súradníc. Matplotlib taktiež dokáže tieto vizualizácie farebne upravovať, zoomovať, prípadne vie aj upraviť ich škálu.
Pandas
Pri použití NumPy v štatistike sa čoskoro dostaneme do fázy, kedy už nám jednoduché polia nebudú stačiť. V tej chvíli oceníme knižnicu Pandas, ktorá poskytuje nástroje na prácu s dátami a tabuľkami (pre zjednodušenie – Pandas je taký Excel v Pythone).
Detaily a podrobnosti práce s knižnicou Pandas nájdeme v kurze Pandas - Vizualizácia dát v Pythone.
Ostatné
Okrem vyššie spomínaných existuje celý rad ďalších knižníc, ktoré majú podobné funkcie, čím rozširujú možnosti našej práce s knižnicou NumPy iným smerom. Napríklad knižnica SciPy poskytuje mnoho ďalších matematických funkcií vrátane geometrie v priestore či pravdepodobnostných funkcií.
Inštalácia NumPy
Inštalácia knižnice NumPy je veľmi jednoduchá. Zvolíme si jednu z dvoch nižšie popísaných metód – buď pomocou nástroja PIP, alebo pomocou programu Anaconda.
Inštalácia pomocou PIP
Do príkazového riadka jednoducho napíšeme príkaz nižšie:
pip install numpy
Po chvíľke sa nainštaluje najnovšia verzia knižnice NumPy.
Nainštalujme si aj knižnicu Matplotlib:
pip install matplotlib
Inštalácia pomocou Anacondy
Pre začiatočníkov je tento variant inštalácie jednoduchší, pretože cez Anacondu môžeme do nášho Pythonu stiahnuť aj ďalšie užitočné knižnice a programy. Na stránke Anaconda.com si stiahneme verziu pre náš operačný systém. Dostupné sú pre Windows, MacOS aj Linux. Následne program spustíme a zahájime inštaláciu. Vyberieme zložku, kam Anacondu stiahneme a necháme všetky zaškrtávacie políčka v defaultnom stave. Políčko Add anaconda to my PATH environment variable necháme nezaškrtnuté. Po dokončení inštalácie máme NumPy v našom Pythone pripravené na prácu.
Jupyter Notebook
Jedným z najobľúbenejších prostredí na vytváranie projektov s NumPy je Jupyter Notebook. Ide o aplikáciu využívajúcu prostredie prehliadača, do ktorej píšeme svoj kód v Pythone. Prostredie, ako už názov napovedá, skutočne pripomína poznámkový blok a je užívateľsky veľmi prívetivé.
Prostredie Jupyter Notebook je len jednou z mnohých možností. Je úplne na nás, či zvolíme iné IDE, ako napríklad PyCharm, VS Code alebo pokročilejšiu a komplexnejšiu verziu Jupyter Notebooku – JupyterLab. Samotné fungovanie knižníc, ako je NumPy, zostáva vo všetkých prostrediach rovnaké, ale spôsob zobrazenia výstupov sa môže líšiť v závislosti od formátovania alebo nastavenia konkrétneho IDE.
Jupyter Notebook nainštalujeme aj pomocou PIP:
pip install notebook
Vytvorenie projektu
Jupyter Notebook si spustíme buď cez príkazový riadok, alebo Anacondu. Na otvorenie príkazového riadka stačí v počítači vyhľadať cmd a kliknúť naň. Akonáhle sa nám príkazový riadok otvorí, zadáme doňho:
python -m notebook
Po pár sekundách sa nám Jupyter Notebook otvorí ako nová záložka v prehliadači.
Ak sme si stiahli Anacondu, je možné Jupyter Notebook otvoriť aj pomocou aplikácie Anaconda Navigator. Po spustení Anacondy si v hlavnom menu aplikácie nájdeme dlaždicu Jupyter Notebook a klikneme na Launch. Opäť sa nám objaví nová záložka v našom prehliadači:

Teraz si vytvoríme nový projekt. V pravom hornom rohu klikneme na New, čím sa nám rozbalí lišta. Hneď ako prvá máme možnosť Python 3. Tú vyberieme a otvorí sa nám nový projekt:

Import NumPy
V samotnom Pythone potom na začiatku nášho kódu (bez ohľadu na použité
IDE) importujeme NumPy pomocou príkazu import. Tradične sa NumPy
importuje pod skratkou np, pre prácu to však nie je podmienkou.
Okrem NumPy si importujeme ešte modul pyplot z knižnice
Matplotlib, pomocou ktorého si dokážeme vizualizovať obsah
v našich poliach. Pre pyplot sa bežne používa
skratka plt:
import numpy as np import matplotlib.pyplot as plt
Stlačením klávesov Shift + Enter potvrdíme import knižníc. V tejto chvíli náš Jupyter Notebook vyzerá takto a my sme pripravení začať s ním pracovať:

Knižnicu aj pracovné prostredie teda máme pripravené a môžeme sa pustiť do práce. To je v rámci tejto lekcie všetko.
V nasledujúcej lekcii, NumPy - Dátové typy, sa na príkladoch naučíme základné dátové typy knižnice NumPy.
