Nástroje na analýzu dat a numerických výpočtů NumPy SciPy Matplotlib Proč potřebujeme knihovny na numerické výpočty • Rychlejší a kompaktnější než listy • NumPy používá méně paměti na uložení dat (optimalizace) • Numerické algoritmy jsou často netriviální • Pohodlné používání NumPy – násobení matic Matice můžeme reprezentovat seznamy: NumPy – násobení matic NumPy – Array • Základní struktura dat v NumPy je numpy.array() • Prvky jsou homogenní = stejného typu (list mohl mít různé typy prvků) • Rychlejší a úspornější než seznamy • Připravené na práci s čísly NumPy – násobení matic Pomocí NumPy arrays můžeme definovat matice jako: Maticové násobení není to stejné jako normální násobení NumPy – operace s array NumPy – indexování NumPy – rozměry NumPy – iterování NumPy – matematické funkce NumPy – nové „čísla“ NaN není číslo: NumPy – dtype a shape • Celý array je stejného datového typu: • Uvažujeme linární pamět -> matice je ve skutečnosti vektor + tvar NumPy – ukládání a načítání Matplotlib • Pravděpodobně nejjednodušší knihovna pro vizualizaci dat. matplotlib • Zobrazení různých 2D a 3D grafů Matplotlib – jednoduchý graf Matplotlib – detajlnější graf SciPy Složitější numerické algoritmy jsou v SciPy. Pro jejich správné použití by jste měli pozorně číst dokumentaci! SciPy nám může pomoci s: 1. Speciálními funkcemi 2. Řešením obyčejných diferenciálních rovnic 3. Interpolací 4. Fitováním 5. Integrováním a derivecame 6. A mnoho dalšího SciPy – ukázka integrace Složitější numerické algoritmy jsou v SciPy. Pro jejich správné použití byste měli pozorně číst dokumentaci! Cvičení 1. 1. Vytvořte matici s názvem „a1“ s následujícími hodnotami „[1, 2, 3, 4, 5]“. 2. Použijte numpy.sum() funkci pro zjištění sumy matice a1 3. Použijte numpy.mean() funkci pro zjištění střední hodnoty matice a1 4. Vytvořte matici „a2“, která bude obsahovat druhé mocniny matice a1 5. Vytvořte matici pomoci numpy.arange() s názvem „a3“, která bude obsahovat pouze liché čísla v rozsahu 1 až 10. 6. Použijte numpy.linspace() a vytvořte matici „a4“ která bude obsahovat 100 hodnot funkce cosinus mezi 0 a π . Cvičení 2. 1. Napište program, který vykreslí funkci: Cvičení 3. 1. Vytvořte matici „x“, která bude mít rovnoměrné vzdálených 100 bodů mezi hodnotami -5 a 5. 2. Vytvořte funkci pro gaussovo rozdělení. # f(x) = exp(-x2 ) 3. Zobrazte gaussovu křivku do grafu. 4. Použijte funkci quad z knihovny scipy.integrate a spočítejte integrál gaussovy křivky mezi hodnotami -2 a 2 Cvičení 4. 1. Vytvořte matici „x“, která bude mít rovnoměrné vzdálených 10 bodů mezi hodnotami 0 a π/2. 2. Vytvořte matici „y“, která bude obsahovat hodnoty pro funkci cosinus v intervalu matice „x“ 3. Zobrazte body z matice „x“ a „y“ do grafu. 4. Napište funkci pro lineární regresi. # a*x + b 5. Použijte funkci curve_fit z knihovny scipy.optimize pro získání smernice a posunu 6. Zobrazte lineární regresi do grafu.