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

Příklad generování náhodného Numbers pomocí NumPy
Příklad generování náhodného Numbers pomocí NumPy

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í.