Detail předmětu
Zpracování a vizualizace dat v prostředí Python
FIT-IZVAk. rok: 2024/2025
Cílem předmětu je seznámit studenty s problematikou získávání, zpracování, analýzy a vizualizace dat. Z možných nástrojů byl zvolen multiplatformní skriptovací jazyk Python, který má propracovaný ekosystém nabízející bohaté spektrum rozšiřujících knihoven ať již ve formě nativního kódu či z pohledu výkonnosti efektivních nástaveb implementovaných v jazyce C/C++.
V rámci přednášek se studenti seznámí s konstrukcemi jazyka Python, metodami získávání, ukládání a manipulací s daty, možnostmi pokročilých výpočtů v numerické i symbolické rovině a vizualizací získaných dat. V předmětu studenti také získají přehled o vlastnostech technik pro pokročilou analýzu datových závislostí a jejich aplikací pro různá data. Na závěr budou ukázány možnosti rozšíření jazyka Python o vlastní konstrukce a techniky umožňující efektivně potlačit nevýhody interpretovaného jazyka pro potřeby aplikací orientovaných na výkonnost. V rámci praktické části (projektu) si studenti projdou všemi fázemi zpracování velkých dat - od fáze návrhu, přes zpracování až po následnou analýzu a vizualizaci.
Podmínky zápočtu
Získání minimálně 50 bodů celkem a minimálně 2 body z každé části projektu.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Pravidla hodnocení a ukončení předmětu
Hodnocení je uděleno na základě samostatně vypracovaného a odevzdaného projektu, jehož implementace se skládá ze tří částí (získání dat, předzpracování a analýza dat, generování zprávy). Každá část je hodnocena samostatně. Student obdrží zpětnou vazbu ke své práci, kterou zapracuje do finálního řešení. První dvě části se odevzdávají v průběhu semestru a mohou být hodnoceny až 20 body každá. Za finální řešení lze získat až 60 bodů.
Učební cíle
Student získá obecný přehled o základních i pokročilých metodách analýzy dat a základních i pokročilých aspektech jazyka Python, který se naučí používat ve spojení s moderními matematickými knihovnami a knihovnami pro pokročilou analýzu a modelování dat. Pochopí, jakým způsobem fungují techniky implementované v těchto knihovnách obecně a naučí se, na jaká data je která technika vhodná.
Kromě obecných znalostí základních technik zpracování dat student získá přehled o efektivním vykonávání kritických částí programu, rozšíření jazyka o vlastní moduly psané v C/C++ či problematice instalací knihoven do izolovaného prostředí či kontejnerů.
Student absolvováním předmětu pochopí, jak efektivně získávat, analyzovat a vizualizovat data různého rozsahu. Získané vědomosti může pak využít pro řešení netriviálních inženýrských a vědeckých úloh či pro vyhodnocování dat pro účely řízení a rozhodování.
Prerekvizity a korekvizity
- doporučená prerekvizita
Principy programovacích jazyků a OOP - doporučená prerekvizita
Základy programování - doporučená prerekvizita
Lineární algebra - doporučená prerekvizita
Pravděpodobnost a statistika
Doporučená literatura
Mark Pilgrim: Ponořme se do Pythonu 3 (ISBN: 978-80-904248-2-1, dostupné online)
Robert Johansson: Numerical Python (2019, ISBN: 978-1-4842-4245-2)
Samir Madhavan: Mastering Python for Data Science (ISBN: 978-17-843901-5-0)
Elearning
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Úvod do jazyka I
- Úvod do jazyka II
- Získávání dat a datová perzistence
- Efektivní realizace operací nad n-dimenzionálními poli
- Nástroje pro pokročilou manipulaci s daty
- Základní přístupy k vizualizaci dat
- Základní metody analýzy dat a datových závislostí
- Pokročilé přístupy k vizualizaci dat
- Pokročilé metody analýzy dat a datových závislostí
- Práce s obrazovými daty a možnosti prezentace dat
- Pokročilé operace nad časovými řadami
- Výpočty v symbolické doméně
- Možnosti akcelerace kódu pro potřeby HPC
Projekt
Vyučující / Lektor
Osnova
Cílem projektu je vytvořit skript, který z veřejně dostupných zdrojů získá data, nad kterými se provede analýza a tato se prezentuje formou zprávy. Hodnocení projektu zohlední kvalitu kódu, výsledné analýzy a vygenerované zprávy.
Elearning