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.
Ačkoliv Python nabízí vestavěné seznamy (lists), pro výpočty v AI jsou nevhodné. NumPy přináší:
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`).
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))
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ů.
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ů. |
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
NumPy tvoří základ, na kterém staví téměř všechny ostatní knihovny pro AI:
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.