Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

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:

Main menu in Jupyter Notebook - NumPy - Matematika v Pythone

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:

New untitled Jupyter Notebook. - NumPy - Matematika v Pythone

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

Obrázok prvého vytvoreného Jupyter Notebooku. - NumPy - Matematika v Pythone

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ť.


 

Všetky články v sekcii
NumPy - Matematika v Pythone
Preskočiť článok
(neodporúčame)
Dátové typy
Článok pre vás napísal Miloš Halda
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
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