1. diel - 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 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 čo nám poskytuje za možnosti, je potrebné mať znalosti na úrovni kurzov Základná konštrukcia jazyka Python a Objektovo orientované programovanie v Pythone.
Čo je NumPy?
Numpy je knižnica programovacieho jazyka Python, ktorá sa používa najmä na rýchlejšiu prácu so zoznamami. Ako sám 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 sám 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í toľko 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
Pythona sú v rádoch desiatok 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 Pythona, 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"). Toto 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" miesto o "zoznamoch". Tieto dva termíny je
potrebné dôsledne odlišovať v rámci kontextu výkladu.
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 máme 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, či 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 spomínaný 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 ponechá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í pre vytváranie projektov s NumPy je Jupyter Notebook. Jedná sa 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 jedno z mnohých možných. Úplne na nás je, či si radšej zvolíme iné IDE ako napríklad PyCharm alebo VS Code. Na prácu s NumPmi to nemá vplyv.
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.
Pokiaľ sme si stiahli Anacondu, je možné Jupyter Notebook tiež otvoriť 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 matplotlib.pyplot as plt import numpy as np
Stlačením kláves Shift + Enter potvrdíme import knižníc. V tejto chvíli náš Jupyter Notebook vyzerá takto a my sme pripravení s ním začať pracovať:
Knižnicu aj pracovné prostredie teda máme pripravené a môžeme sa pustiť do práce. To je pre túto lekciu všetko.
V budúcej lekcii, Dátové typy, si povieme niečo o základných dátových typoch knižnice NumPy, na čo ich môžeme využiť a ako s nimi pracovať.