Python Výukový program NumPy pro začátečníky: Učte se s příklady
V čem je NumPy Python?
nemotorný je open source knihovna dostupná v Python, která pomáhá v matematickém, vědeckém, inženýrském a datovém programování. Je to velmi užitečná knihovna pro provádění matematických a statistických operací Python. Funguje perfektně pro vícerozměrná pole a násobení matic. Snadno se integruje s C/C++ si Fortran.
Pro jakýkoli vědecký projekt je NumPy nástroj, který je třeba znát. Byl vytvořen pro práci s N-rozměrným polem, lineární algebrou, náhodným číslem, Fourierovou transformací atd.
NumPy je programovací jazyk, který se zabývá vícerozměrnými poli a maticemi. Kromě polí a matic podporuje NumPy velké množství matematických operací. V této části si zopakujeme základní funkce, které potřebujete znát pro výukový program na 'TensorFlow. "
Proč používat NumPy?
NumPy je efektivita paměti, což znamená, že dokáže zpracovat obrovské množství dat dostupnější než jakákoli jiná knihovna. Kromě toho se s NumPy velmi pohodlně pracuje, zejména pro násobení a přetváření matic. Navíc je NumPy rychlý. Ve skutečnosti se TensorFlow a Scikit učí používat pole NumPy k výpočtu násobení matice na konci.
Jak nainstalovat NumPy
Chcete-li nainstalovat knihovnu NumPy, podívejte se na náš tutoriál Jak nainstalovat TensorFlow. NumPy je standardně nainstalován s Anaconda.
Ve vzdáleném případě není NumPy nainstalován-
NumPy můžete nainstalovat pomocí Anaconda:
conda install -c anaconda numpy
- In Jupyter notebook:
import sys !conda install --yes --prefix {sys.prefix} numpy
Importovat NumPy a zkontrolovat verzi
Příkaz pro import numpy je:
import numpy as np
Výše uvedený kód přejmenuje jmenný prostor Numpy na np. To nám umožňuje zadat funkci, metody a atributy Numpy předponu „np“ namísto psaní „numpy“. Je to standardní zkratka, kterou najdete v nudné literatuře
Chcete-li zkontrolovat nainstalovanou verzi NumPy, použijte níže uvedený příkaz:
print (np.__version__)
Výstup:
1.18.0
Co je to Python NumPy Array?
NumPy pole jsou trochu podobná Python seznamy, ale zároveň velmi odlišné. Pro ty z vás, kteří s tématem začínají, si ujasněme, co to přesně je a k čemu je to dobré.
Jak název napovídá, pole NumPy je centrální datovou strukturou knihovny numpy. Název knihovny je ve skutečnosti zkratka pro „Numeric Python“ nebo „Číselné Python".
Vytvoření pole NumPy
Nejjednodušší způsob, jak vytvořit pole v Numpy, je použít Python Seznam
myPythonList = [1,9,8,3]
Chcete-li převést python list na numpy pole pomocí objektu np.array.
numpy_array_from_list = np.array(myPythonList)
Pro zobrazení obsahu seznamu
numpy_array_from_list
Výstup:
array([1, 9, 8, 3])
V praxi není potřeba deklarovat a Python Seznam. Operaci lze kombinovat.
a = np.array([1,9,8,3])
POZNÁMKA: Numpy dokumentace uvádí použití np.ndarray k vytvoření pole. Toto je však doporučená metoda.
Můžete také vytvořit numpy pole z Tuple.
Matematický Operana poli
Na poli můžete provádět matematické operace jako sčítání, odčítání, dělení a násobení. Syntaxe je název pole následovaný operací (+.-,*,/) následovaným operandem
Příklad:
numpy_array_from_list + 10
Výstup:
array([11, 19, 18, 13])
Tato operace přidá 10 ke každému prvku numpy pole.
Tvar pole
Tvar pole můžete zkontrolovat pomocí tvaru objektu, kterému předchází název pole. Stejným způsobem můžete zkontrolovat typ pomocí dtypes.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Celé číslo je hodnota bez desetinného místa. Pokud vytvoříte pole s desítkovou soustavou, typ se změní na float.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2 Dimension Array
Dimenze můžete přidat pomocí čárky „,“
Všimněte si, že musí být v závorce []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3 Dimension Array
Vyšší dimenze lze zkonstruovat následovně:
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
Objektivní | Kód |
---|---|
Vytvořte pole | pole([1,2,3]) |
vytisknout tvar | pole([.]).tvar |
Co je numpy.zeros()?
numpy.zeros() nebo np.nuly Python Funkce se používá k vytvoření matice plné nul. numpy.zeros() in Python lze použít, když inicializujete váhy během první iterace v TensorFlow a dalších statistických úlohách.
Syntaxe funkce numpy.zeros().
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parametry
Zde,
- Shape: je tvar numpy nulového pole
- Dtype: je datový typ v numpy nulách. Je to nepovinné. Výchozí hodnota je float64
- Objednávka: Výchozí je C, což je základní styl řádku pro numpy.zeros() in Python.
Python numpy.zeros() Příklad
import numpy as np np.zeros((2,2))
Výstup:
array([[0., 0.], [0., 0.]])
Příklad numpy nuly s datovým typem
import numpy as np np.zeros((2,2), dtype=np.int16)
Výstup:
array([[0, 0], [0, 0]], dtype=int16)
Co je numpy.ones()?
funkce np.ones(). se používá k vytvoření matice plné jedniček. numpy.ones() in Python lze použít, když inicializujete váhy během první iterace v TensorFlow a dalších statistických úlohách.
Python numpy.ones() Syntaxe
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parametry
Zde,
- Shape: je tvar np.ones Python Řada
- Dtype: je datový typ v numpy. Je to nepovinné. Výchozí hodnota je float64
- Objednávka: Výchozí je C, což je základní styl řádku.
Python numpy.ones() 2D pole s příkladem datového typu
import numpy as np np.ones((1,2,3), dtype=np.int16)
Výstup:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
funkce numpy.reshape() v Python
Python NumPy Reshape Funkce se používá k tvarování pole bez změny jeho dat. V některých případech může být nutné změnit tvar dat z širokých na dlouhé. K tomu můžete použít funkci np.reshape.
Syntaxe np.reshape()
numpy.reshape(a, newShape, order='C')
Zde,
a: Pole, které chcete přetvořit
newShape: Nové přání tvaru
Objednávka: Výchozí je C, což je základní styl řádku.
Příklad NumPy Reshape
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Výstup:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() in Python
Python NumPy Flatten Funkce se používá k vrácení kopie pole v jedné dimenzi. Když se zabýváte nějakou neuronovou sítí, jako je convnet, musíte pole zploštit. K tomu můžete použít funkce np.flatten().
Syntaxe np.flatten()
numpy.flatten(order='C')
Zde,
Objednávka: Výchozí je C, což je základní styl řádku.
Příklad NumPy Flatten
e.flatten()
Výstup:
array([1, 2, 3, 4, 5, 6])
Co je numpy.hstack() in Python?
Numpy.hstack je funkce v Python který se používá k horizontálnímu skládání sekvencí vstupních polí za účelem vytvoření jediného pole. Pomocí funkce hstack() můžete přidávat data horizontálně. Je to velmi pohodlná funkce v NumPy.
Pojďme studovat hstack Python s příkladem:
Příklad:
## Horitzontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Výstup:
Horizontal Append: [1 2 3 4 5 6]
Co je numpy.vstack() in Python?
Numpy.vstack je funkce v Python který se používá k vertikálnímu skládání sekvencí vstupních polí za účelem vytvoření jediného pole. Pomocí funkce vstack() můžete přidávat data vertikálně.
Pojďme si to prostudovat na příkladu:
Příklad:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
Výstup:
Vertical Append: [[1 2 3] [4 5 6]]
Po prostudování NumPy vstack a hstack se naučíme příklad generování náhodných čísel v NumPy.
Generovat náhodné Numbers pomocí NumPy
Chcete-li generovat náhodná čísla pro Gaussovo rozdělení, použijte:
numpy.random.normal(loc, scale, size)
Zde,
- Místo: průměr. Centrum distribuce
- Měřítko: standardní odchylka.
- Velikost: počet vratek
Příklad:
## Generate random nmber from normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Pokud je vyneseno, bude rozložení podobné následujícímu grafu
Funkce NumPy Asarray
Funkce asarray() se používá, když chcete převést vstup na pole. Vstupem mohou být seznamy, n-tice, ndarray atd.
Syntaxe:
numpy.asarray(data, dtype=None, order=None)[source]
Zde,
datum: Data, která chcete převést na pole
dtype: Toto je volitelný argument. Pokud není zadán, je datový typ odvozen ze vstupních dat
Objednávka: Výchozí je C, což je základní styl řádku. Další možností je F (Fortanův styl)
Příklad:
Zvažte následující 2D matici se čtyřmi řádky a čtyřmi sloupci vyplněnými 1
import numpy as np A = np.matrix(np.ones((4,4)))
Pokud chcete změnit hodnotu matice, nemůžete. Důvodem je, že není možné změnit kopii.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Matrix je neměnný. Pokud chcete přidat modifikaci do původního pole, můžete použít asarray. Podívejme se, zda dojde k nějaké změně, když chcete změnit hodnotu třetích řádků na hodnotu 2.
np.asarray(A)[2]=2 print(A)
Vysvětlení kódu:
np.asarray(A): převede matici A na pole
[2]: vyberte třetí řádky
Výstup:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Co je numpy.arange()?
numpy.arange() je vestavěná funkce numpy, která vrací objekt ndarray obsahující rovnoměrně rozložené hodnoty v rámci definovaného intervalu. Například chcete vytvořit hodnoty od 1 do 10; můžete použít np.arange() v Python funkce.
Syntaxe:
numpy.arange(start, stop, step, dtype)
Python Parametry NumPy arange:
- Home: Začátek intervalu pro np.arange in Python funkce.
- Stop: Konec intervalu.
- Krok: Mezery mezi hodnotami. Výchozí krok je 1.
- Dtype: Je typ výstupu pole pro NumPy arange in Python.
Příklad:
import numpy np np.arange(1, 11)
Výstup:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Příklad:
Pokud chcete změnit krok v této funkci NumPy arange v Python například můžete přidat třetí číslo do závorky. Změní krok.
import numpy np np.arange(1, 14, 4)
Výstup:
array([ 1, 5, 9, 13])
Funkce NumPy Linspace
Linspace poskytuje vzorky rovnoměrně rozložené.
Syntaxe:
numpy.linspace(start, stop, num, endpoint)
Zde,
- Home: Počáteční hodnota sekvence
- Stop: Koncová hodnota sekvence
- V: Počet vzorků k vygenerování. Výchozí hodnota je 50
- Konečný bod: Pokud je True (výchozí), stop je poslední hodnotou. Pokud je False, stop hodnota není zahrnuta.
Příklad:
Lze jej například použít k vytvoření 10 rovnoměrně rozložených hodnot od 1 do 5.
import numpy as np np.linspace(1.0, 5.0, num=10)
Výstup:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Pokud nechcete do intervalu zahrnout poslední číslici, můžete koncový bod nastavit na false
np.linspace(1.0, 5.0, num=5, endpoint=False)
Výstup:
array([1. , 1.8, 2.6, 3.4, 4.2])
Funkce LogSpace NumPy v Python
LogSpace vrací čísla se sudými mezerami na logaritmickém měřítku. Logspace má stejné parametry jako np.linspace.
Syntaxe:
numpy.logspace(start, stop, num, endpoint)
Příklad:
np.logspace(3.0, 4.0, num=4)
Výstup:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
A konečně, pokud chcete zkontrolovat velikost paměti prvku v poli, můžete použít itemsize
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Výstup:
16
Každý prvek má 16 bajtů.
Indexování a vkládání Python
Krájení dat je s numpy triviální. Rozřízneme matici „e“. Všimněte si, že v Python, musíte použít závorky k vrácení řádků nebo sloupců
Příklad:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Pamatujte, že s numpy začíná první pole/sloupec na 0.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Výstup:
First row: [1 2 3] Second row: [4 5 6]
In Pythonjako mnoho jiných jazyků,
- Hodnoty před čárkou představují řádky
- Hodnota napravo představuje sloupce.
- Pokud chcete vybrat sloupec, musíte před index sloupce přidat :.
- : znamená, že chcete všechny řádky z vybraného sloupce.
print('Second column:', e[:,1])
Second column: [2 5]
Chcete-li vrátit první dvě hodnoty druhého řádku. Pomocí : vyberete všechny sloupce až do druhého
## Second Row, two values print(e[1, :2]) [4 5]
Statistické funkce v Python
NumPy má několik užitečných statistických funkcí pro nalezení minima, maxima, percentilové směrodatné odchylky a rozptylu atd. z daných prvků v poli. Funkce jsou vysvětleny následovně −
Numpy je vybaven robustní statistickou funkcí, jak je uvedeno níže
funkce | nemotorný |
---|---|
Min | np.min() |
Max | np.max() |
Znamenat | np.mean() |
Medián | np.medián() |
Směrodatná odchylka | np.std() |
Zvažte následující pole:
Příklad:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Výstup:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Příklad statistické funkce NumPy
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
Výstup:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Co je to numpy dot produkt?
Produkt Numpy.dot je výkonná knihovna pro maticové výpočty. Například můžete vypočítat tečkový součin pomocí np.dot. Součin Numpy.dot je bodový součin a a b. numpy.dot() in Python zpracovává 2D pole a provádí násobení matic.
Syntaxe:
numpy.dot(x, y, out=None)
parametry
Zde,
x, y: Vstupní pole. x a y by měly být 1-D nebo 2-D, aby funkce np.dot() fungovala
out: Toto je výstupní argument pro skalární 1-D pole, které má být vráceno. Jinak by měl být vrácen ndarray.
Vrácení zboží
Funkce numpy.dot() in Python vrátí bodový součin dvou polí x a y. Funkce dot() vrátí skalár, pokud jsou x i y 1-D; jinak vrátí pole. Pokud je zadáno 'out', je vráceno.
Zvedne
Dot produkt dovnitř Python vyvolá výjimku ValueError, pokud poslední rozměr x nemá stejnou velikost jako předposlední rozměr y.
Příklad:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
Výstup:
14
Násobení matice v Python
Funkce Numpy matmul() se používá k vrácení maticového součinu 2 polí. Zde je návod, jak to funguje
1) 2-D pole, vrátí normální produkt
2) Rozměry > 2, výrobek je považován za stoh matrice
3) 1-D pole se nejprve povýší na matici a poté se vypočítá součin
Syntaxe:
numpy.matmul(x, y, out=None)
Zde,
x, y: Vstupní pole. skaláry nejsou povoleny
out: Toto je volitelný parametr. Výstup je obvykle uložen v ndarray
Příklad:
Stejným způsobem můžete vypočítat násobení matic pomocí np.matmul
### Matmul: matruc product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Výstup:
array([[19, 22], [43, 50]])
determinant
V neposlední řadě, pokud potřebujete vypočítat determinant, můžete použít np.linalg.det(). Všimněte si, že numpy se stará o rozměr.
Příklad:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Výstup:
-2.000000000000005
Shrnutí
- Python je open source knihovna dostupná v Python, který pomáhá v matematických, vědeckých, inženýrských a programování datové vědy.
- numpy.zeros() nebo np.zeros Python Funkce se používá k vytvoření matice plné nul.
- numpy.ones() in Python lze použít, když inicializujete váhy během první iterace v TensorFlow a dalších statistických úlohách.
- Python Funkce NumPy Reshape se používá k tvarování pole beze změny jeho dat.
- Python Funkce NumPy Flatten se používá k vrácení kopie pole v jedné dimenzi.
- Numpy.hstack je funkce v Python který se používá k horizontálnímu skládání sekvencí vstupních polí za účelem vytvoření jediného pole.
- Numpy.vstack je funkce v Python který se používá k vertikálnímu skládání sekvencí vstupních polí za účelem vytvoření jediného pole.
- numpy.arange() je vestavěná funkce numpy, která vrací objekt ndarray obsahující rovnoměrně rozložené hodnoty v definovaném intervalu.
- Produkt Numpy.dot je výkonná knihovna pro maticové výpočty.
- Funkce Numpy matmul() se používá k vrácení maticového součinu 2 polí.