Obsah
Knihovna NumPy
NumPy (zkratka pro *Numerical Python*) je základní knihovna pro vědecké výpočty v jazyce Python. Je to de facto standard pro manipulaci s daty v oblasti datové vědy, strojového učení a AI.
Proč používat NumPy?
Ačkoliv Python nabízí vestavěné seznamy (lists), pro výpočty v AI jsou nevhodné. NumPy přináší:
- Rychlost: Operace jsou implementovány v jazycích C a Fortran, což je řádově rychlejší než standardní Python.
- Vektorizace: Umožňuje provádět operace nad celými poli najednou bez nutnosti psát cykly `for`.
- Paměťová efektivita: Pole NumPy zabírají v paměti mnohem méně místa než seznamy objektů.
Základní objekt: ndarray
Srdcem knihovny je objekt ndarray (n-dimensional array). Jde o homogenní pole, což znamená, že všechny prvky musí být stejného datového typu (nejčastěji `float` nebo `int`).
Ukázka vytvoření polí
import numpy as np # Vektor (1D pole) v = np.array([1, 2, 3]) # Matice (2D pole) m = np.array([[1, 2], [3, 4]]) # Tenzor (3D pole - např. 2x2x2) t = np.zeros((2, 2, 2))
Klíčové operace pro AI
Broadcasting (Šíření)
NumPy dokáže pracovat s poli různých tvarů během aritmetických operací. Například přičtení skaláru ke každému prvku matice proběhne automaticky bez cyklů.
Lineární algebra (submodul linalg)
Pro potřeby AI obsahuje NumPy specializovaný modul `numpy.linalg`.
| Funkce | Význam |
|---|---|
| `np.dot(a, b)` | Skalární součin nebo násobení matic. |
| `np.transpose(a)` | Transpozice matice. |
| `np.linalg.inv(a)` | Výpočet inverzní matice. |
| `np.linalg.eig(a)` | Výpočet vlastních čísel a vektorů. |
Praktický příklad: Výpočet v neuronu
V lineární algebře pro AI jsme zmínili aktivaci neuronu jako $z = w \cdot x + b$. V NumPy to vypadá takto:
inputs = np.array([1.0, 2.0, 3.0]) weights = np.array([0.2, 0.8, -0.5]) bias = 2.0 # Výpočet jedním příkazem output = np.dot(inputs, weights) + bias
Integrace v ekosystému
NumPy tvoří základ, na kterém staví téměř všechny ostatní knihovny pro AI:
- Pandas: Pro analýzu tabulkových dat.
- Scikit-learn: Pro klasické algoritmy strojového učení.
- SciPy: Pro pokročilé vědecké výpočty.
- TensorFlow/PyTorch: Používají tenzory, které jsou přímo inspirovány architekturou NumPy polí.
Tip: Většina metod v AI očekává data ve formátu NumPy polí. Umět efektivně „tvarovat“ pole (pomocí `.reshape()`) je jednou z nejdůležitějších dovedností datového inženýra.
