Python Tutorial NumPy pentru începători: învață cu exemple

În ce este NumPy Python?

NumPy este o bibliotecă open source disponibilă în Python, care ajută la programarea matematică, științifică, de inginerie și știința datelor. Este o bibliotecă foarte utilă pentru a efectua operații matematice și statistice Python. Funcționează perfect pentru matrice multidimensionale și multiplicare matrice. Este ușor de integrat cu C/C++ și Fortran.

Pentru orice proiect științific, NumPy este instrumentul de cunoaștere. A fost construit pentru a funcționa cu matrice N-dimensională, algebră liniară, număr aleator, transformată Fourier etc.

NumPy este un limbaj de programare care se ocupă cu matrice și matrice multidimensionale. Pe lângă matrice și matrice, NumPy acceptă un număr mare de operații matematice. În această parte, vom trece în revistă funcțiile esențiale pe care trebuie să le cunoașteți pentru tutorialul despre 'TensorFlow

De ce să folosiți NumPy?

NumPy este eficiența memoriei, ceea ce înseamnă că poate gestiona o cantitate mare de date mai accesibilă decât orice altă bibliotecă. În plus, NumPy este foarte convenabil de lucrat, în special pentru multiplicarea și remodelarea matricei. În plus, NumPy este rapid. De fapt, TensorFlow și Scikit învață să folosească matricea NumPy pentru a calcula înmulțirea matricei în back-end.

Cum se instalează NumPy

Pentru a instala biblioteca NumPy, consultați tutorialul nostru Cum se instalează TensorFlow. NumPy este instalat implicit cu Anaconda.

În cazul de la distanță, NumPy nu este instalat-

Puteți instala NumPy folosind Anaconda:

conda install -c anaconda numpy
  • In Jupyter Caiet :
import sys
!conda install --yes --prefix {sys.prefix} numpy

Importați NumPy și verificați versiunea

Comanda pentru a importa numpy este:

import numpy as np

Codul de mai sus redenumește spațiul de nume Numpy în np. Acest lucru ne permite să prefixăm funcția, metodele și atributele Numpy cu „np” în loc să tastăm „numpy”. Este scurtătura standard pe care o veți găsi în literatura numpy

Pentru a verifica versiunea instalată de NumPy, utilizați comanda de mai jos:

print (np.__version__)

ieșire:

1.18.0

Ce Este Python NumPy Array?

Matricele NumPy sunt un pic asemănătoare Python liste, dar totuși foarte diferite în același timp. Pentru aceia dintre voi care sunteți începători în acest subiect, să clarificăm ce este exact și la ce este bun.

După cum arată numele, o matrice NumPy este o structură de date centrală a bibliotecii numpy. Numele bibliotecii este de fapt prescurtarea pentru „Numeric Python” sau „Numeric Python".

Crearea unei matrice NumPy

Cel mai simplu mod de a crea o matrice în Numpy este utilizarea Python Listă

myPythonList = [1,9,8,3]

Pentru a converti lista Python într-o matrice numpy folosind obiectul np.array.

numpy_array_from_list = np.array(myPythonList)

Pentru a afișa conținutul listei

numpy_array_from_list

ieșire:

array([1, 9, 8, 3])

În practică, nu este necesară declararea a Python Listă. Operația poate fi combinată.

a  = np.array([1,9,8,3])

NOTĂ: documentația Numpy indică utilizarea lui np.ndarray pentru a crea o matrice. Cu toate acestea, aceasta este metoda recomandată.

De asemenea, puteți crea o matrice numpy dintr-un tuplu.

Matematic Operape un Array

Puteți efectua operații matematice precum adunări, scăderi, împărțiri și înmulțiri pe o matrice. Sintaxa este numele tabloului urmat de operația (+.-,*,/) urmat de operand

Exemplu:

numpy_array_from_list + 10

ieșire:

array([11, 19, 18, 13])

Această operație adaugă 10 la fiecare element al matricei numpy.

Forma matricei

Puteți verifica forma matricei cu forma obiectului precedată de numele matricei. În același mod, puteți verifica tipul cu dtypes.

import numpy as np
a  = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

Un număr întreg este o valoare fără zecimală. Dacă creați o matrice cu zecimală, atunci tipul se va schimba în float.

#### Different type
b  = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

2 Dimension Array

Puteți adăuga o dimensiune cu „,”comă

Rețineți că trebuie să fie în paranteză []

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

3 Dimension Array

Dimensiunea superioară poate fi construită după cum urmează:

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Obiectiv Cod
Creați matrice matrice([1,2,3])
imprimați forma matrice([.]).formă

Ce este numpy.zeros()?

numpy.zeros() sau np.zerouri Python funcția este folosită pentru a crea o matrice plină de zerouri. numpy.zeros() in Python poate fi folosit atunci când inițializați ponderile în timpul primei iterații în TensorFlow și alte sarcini statistice.

Funcția numpy.zeros() Sintaxă

numpy.zeros(shape, dtype=float, order='C')

Python numpy.zeros() Parametri

Aici,

  • Modela: este forma matricei numpy zero
  • Dtype: este tipul de date în zerouri numerice. Este optional. Valoarea implicită este float64
  • Order: Implicit este C, care este un stil de rând esențial pentru numpy.zeros() în Python.

Python numpy.zeros() Exemplu

import numpy as np
np.zeros((2,2))

ieșire:

array([[0., 0.],
          [0., 0.]])

Exemplu de numpy zero cu Datatype

import numpy as np
np.zeros((2,2), dtype=np.int16)

ieșire:

array([[0, 0],
         [0, 0]], dtype=int16)

Ce este numpy.ones()?

funcția np.ones(). este folosit pentru a crea o matrice plină de unele. numpy.one() în Python poate fi folosit atunci când inițializați ponderile în timpul primei iterații în TensorFlow și alte sarcini statistice.

Python numpy.ones() Sintaxă

numpy.ones(shape, dtype=float, order='C')

Python numpy.ones() Parametri

Aici,

  • Modela: este forma np.ones Python Mulțime
  • Dtype: este tipul de date în numerele. Este optional. Valoarea implicită este float64
  • Order: Implicit este C, care este un stil de rând esențial.

Python numpy.ones() Matrice 2D cu exemplu de tip de date

import numpy as np
np.ones((1,2,3), dtype=np.int16)

ieșire:

array([[[1, 1, 1],        
       [1, 1, 1]]], dtype=int16)

funcția numpy.reshape() în Python

Python NumPy Reshape funcția este folosită pentru a modela o matrice fără a-i modifica datele. În unele ocazii, poate fi necesar să remodelați datele de la lat la lung. Puteți utiliza funcția np.reshape pentru aceasta.

Sintaxa lui np.reshape()

numpy.reshape(a, newShape, order='C')

Aici,

a: Matrice pe care doriți să o remodelați

newShape: Noile dorințe se formează

Order: Implicit este C, care este un stil de rând esențial.

Exemplu de remodelare NumPy

import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

ieșire:

 // Before reshape
[[1 2 3] 
 [4 5 6]]
//After Reshape
array([[1, 2],       
	[3, 4],       
	[5, 6]])

numpy.platten() in Python

Python NumPy Flatten funcția este utilizată pentru a returna o copie a matricei într-o singură dimensiune. Când aveți de-a face cu o rețea neuronală, cum ar fi convnet, trebuie să aplatizați matricea. Puteți utiliza funcțiile np.flatten() pentru aceasta.

Sintaxa lui np.flatten()

numpy.flatten(order='C')

Aici,
Order: Implicit este C, care este un stil de rând esențial.

Exemplu de NumPy Flatten

e.flatten()

ieșire:

array([1, 2, 3, 4, 5, 6])

Ce este numpy.hstack() în Python?

Numpy.hstack este o funcție în Python care este folosit pentru a stivui orizontal secvențe de matrice de intrare pentru a face o singură matrice. Cu funcția hstack(), puteți adăuga date orizontal. Este o funcție foarte convenabilă în NumPy.

Să studiem hstack in Python cu un exemplu:

Exemplu:

## 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)))

ieșire:

Horizontal Append: [1 2 3 4 5 6]

Ce este numpy.vstack() în Python?

Numpy.vstack este o funcție în Python care este folosit pentru a stivui vertical secvențe de matrice de intrare pentru a realiza o singură matrice. Cu funcția vstack(), puteți adăuga date pe verticală.

Să-l studiem cu un exemplu:

Exemplu:

## 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)))

ieșire:

Vertical Append: [[1 2 3]
 [4 5 6]]

După ce am studiat NumPy vstack și hstack, să învățăm un exemplu pentru a genera numere aleatorii în NumPy.

Generați aleatoriu Numbers folosind NumPy

Pentru a genera numere aleatorii pentru distribuția Gauss, utilizați:

numpy.random.normal(loc, scale, size)

Aici,

  • Loc: media. Centrul de distribuție
  • Scară: deviație standard.
  • Mărimea: numărul de returnări

Exemplu:

## 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]

Dacă este reprezentată grafic, distribuția va fi similară cu graficul următor

Exemplu de generare aleatorie Numbers folosind NumPy
Exemplu de generare aleatorie Numbers folosind NumPy

Funcția NumPy Asarray

Funcția asarray() este utilizată atunci când doriți să convertiți o intrare într-o matrice. Intrarea ar putea fi o listă, un tuplu, un ndarray etc.

Sintaxă:

numpy.asarray(data, dtype=None, order=None)[source]

Aici,

de date: Date pe care doriți să le convertiți într-o matrice

dtype: Acesta este un argument opțional. Dacă nu este specificat, tipul de date este dedus din datele de intrare

Order: Implicit este C, care este un stil de rând esențial. O altă opțiune este F (în stilul Fortan)

Exemplu:

Luați în considerare următoarea matrice 2-D cu patru rânduri și patru coloane completate cu 1

import numpy as np
A = np.matrix(np.ones((4,4)))

Dacă doriți să schimbați valoarea matricei, nu puteți. Motivul este că nu este posibilă schimbarea unei copii.

np.array(A)[2]=2
print(A)			
[[1. 1. 1. 1.]
 [1. 1. 1. 1.] 
 [1. 1. 1. 1.] 
 [1. 1. 1. 1.]]

Matrix este imuabilă. Puteți utiliza asarray dacă doriți să adăugați modificări în matricea originală. Să vedem dacă apare vreo modificare atunci când doriți să modificați valoarea celui de-al treilea rând cu valoarea 2.

np.asarray(A)[2]=2
print(A)

Explicația codului:

np.asarray(A): convertește matricea A într-o matrice

[2]: selectați al treilea rând

ieșire:

[[1. 1. 1. 1.] 
      [1. 1. 1. 1.] 
      [2. 2. 2. 2.] # new value 
      [1. 1. 1. 1.]]

Ce este numpy.arange()?

numpy.arange() este o funcție numpy încorporată care returnează un obiect ndarray care conține valori uniform distanțate într-un interval definit. De exemplu, doriți să creați valori de la 1 la 10; puteți folosi np.arange() în Python Funcția.

Sintaxă:

numpy.arange(start, stop, step, dtype)

Python NumPy range Parametri:

  • acasă: Începutul intervalului pentru np.arange in Python Funcția.
  • Stop: Sfârșitul intervalului.
  • Pas: Spațierea dintre valori. Pasul implicit este 1.
  • Dtype: Este un tip de ieșire de matrice pentru gama NumPy în Python.

Exemplu:

import numpy np
np.arange(1, 11)

ieșire:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Exemplu:

Dacă doriți să schimbați pasul din această funcție de aranjament NumPy în Python De exemplu, puteți adăuga un al treilea număr în paranteză. Va schimba pasul.

import numpy np
np.arange(1, 14, 4)

ieșire:

array([ 1,  5,  9, 13])

Funcția NumPy Linspace

Linspace oferă mostre uniform distanțate.

Sintaxă:

numpy.linspace(start, stop, num, endpoint)

Aici,

  • acasă: Valoarea de pornire a secvenței
  • Stop: Valoarea finală a secvenței
  • În: Numărul de mostre de generat. Implicit este 50
  • Punct final: Dacă este adevărat (implicit), stop este ultima valoare. Dacă este fals, valoarea stop nu este inclusă.

Exemplu:

De exemplu, poate fi folosit pentru a crea 10 valori de la 1 la 5 la distanță uniformă.

import numpy as np
np.linspace(1.0, 5.0, num=10)

ieșire:

array([1.        , 1.44444444, 1.88888889, 2.33333333, 2.77777778,       3.22222222, 3.66666667, 4.11111111, 4.55555556, 5.        ])

Dacă nu doriți să includeți ultima cifră în interval, puteți seta punctul final la fals

np.linspace(1.0, 5.0, num=5, endpoint=False)

ieșire:

array([1. , 1.8, 2.6, 3.4, 4.2])

Funcția LogSpace NumPy în Python

LogSpace returnează numere spațiate chiar pe o scară logaritmică. Logspace are aceiași parametri ca np.linspace.

Sintaxă:

numpy.logspace(start, stop, num, endpoint)

Exemplu:

np.logspace(3.0, 4.0, num=4)

ieșire:

array([ 1000. ,  2154.43469003,  4641.58883361, 10000.        ])

În cele din urmă, dacă doriți să verificați dimensiunea memoriei unui element dintr-o matrice, puteți utiliza itemize

x = np.array([1,2,3], dtype=np.complex128)
x.itemsize

ieșire:

16

Fiecare element are 16 octeți.

Indexare și tăiere Python

Tăierea datelor este banală cu numpy. Vom tăia matricea „e”. Rețineți că, în Python, trebuie să utilizați paranteze pentru a returna rândurile sau coloanele
Exemplu:

## Slice
import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
[[1 2 3]
 [4 5 6]]

Amintiți-vă, cu numpy, prima matrice/coloană începe la 0.

## First column
print('First row:', e[0])

## Second col
print('Second row:', e[1])

ieșire:

First row: [1 2 3]
Second row: [4 5 6]

In Python, ca multe alte limbi,

  • Valorile înainte de virgulă reprezintă rânduri
  • Valoarea drepturilor reprezintă coloane.
  • Dacă doriți să selectați o coloană, trebuie să adăugați : înainte de indexul coloanei.
  • : înseamnă că doriți toate rândurile din coloana selectată.
print('Second column:', e[:,1])
Second column: [2 5]

Pentru a returna primele două valori ale celui de-al doilea rând. Folosiți : pentru a selecta toate coloanele până la a doua

## Second Row, two values
  print(e[1, :2])			
  [4 5]

Funcții statistice în Python

NumPy are destul de multe funcții statistice utile pentru a găsi minim, maxim, abatere standard percentilă și varianță, etc din elementele date din matrice. Funcțiile sunt explicate după cum urmează −

Numpy este echipat cu funcția statistică robustă, așa cum este listată mai jos

Funcţie NumPy
Min np.min()
max np.max()
medie np.mean()
Median np.median()
Deviația standard np.std()

Luați în considerare următoarea matrice:

Exemplu:

import numpy as np
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)

ieșire:

[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

Exemplu de funcție statistică 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))

ieșire:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Ce este produsul numpy dot?

Produs Numpy.dot este o bibliotecă puternică pentru calculul matricial. De exemplu, puteți calcula produsul punctual cu np.dot. Numpy.produsul punctual este produsul punctual al lui a și b. numpy.dot() în Python se ocupă de tablourile 2D și efectuează înmulțiri de matrice.

Sintaxă:

numpy.dot(x, y, out=None)

parametrii

Aici,

x, y: matrice de intrare. x și y ar trebui să fie ambele 1-D sau 2-D pentru ca funcția np.dot() să funcționeze

afară: Acesta este argumentul de ieșire pentru matricea scalară 1-D care urmează să fie returnată. În caz contrar, ndarray ar trebui returnat.

Returnări

Funcția numpy.dot() în Python returnează un produs scalar din două tablouri x și y. Funcția dot() returnează un scalar dacă ambii x și y sunt 1-D; în caz contrar, returnează o matrice. Dacă este dat „out”, atunci este returnat.

Raiseul

Punctați produsul în Python ridică o excepție ValueError dacă ultima dimensiune a lui x nu are aceeași dimensiune cu ultima dimensiune a lui y.

Exemplu:

## 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)

ieșire:

14

Înmulțirea matricelor în Python

Funcția Numpy matmul() este utilizată pentru a returna produsul matriceal a 2 tablouri. Iată cum funcționează

1) Matrice 2-D, returnează produsul normal

2) Dimensiuni > 2, produsul este tratat ca o stivă de matrice

3) Matricea 1-D este mai întâi promovată la o matrice, apoi se calculează produsul

Sintaxă:

numpy.matmul(x, y, out=None)

Aici,

x, y: matrice de intrare. scalari nu sunt permisi

afară: Acesta este un parametru opțional. De obicei, ieșirea este stocată în ndarray

Exemplu:

În același mod, puteți calcula înmulțirea matricelor cu 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)

ieșire:

array([[19, 22],       
            [43, 50]])

determinant

Nu în ultimul rând, dacă trebuie să calculați determinantul, puteți utiliza np.linalg.det(). Rețineți că numpy are grijă de dimensiune.

Exemplu:

## Determinant 2*2 matrix
### 5*8-7*6np.linalg.det(i)

ieșire:

-2.000000000000005

Rezumat

  • Python este o bibliotecă open source disponibilă în Python, care ajută la matematică, științifică, inginerie și programarea științei datelor.
  • numpy.zeros() sau np.zeros Python funcția este folosită pentru a crea o matrice plină de zerouri.
  • numpy.one() în Python poate fi folosit atunci când inițializați ponderile în timpul primei iterații în TensorFlow și alte sarcini statistice.
  • Python Funcția NumPy Reshape este folosită pentru a modela o matrice fără a-i modifica datele.
  • Python Funcția NumPy Flatten este utilizată pentru a returna o copie a matricei într-o singură dimensiune.
  • Numpy.hstack este o funcție în Python care este folosit pentru a stivui orizontal secvențe de matrice de intrare pentru a face o singură matrice.
  • Numpy.vstack este o funcție în Python care este folosit pentru a stivui vertical secvențe de matrice de intrare pentru a realiza o singură matrice.
  • numpy.arange() este o funcție numpy încorporată care returnează un obiect ndarray care conține valori uniform distanțate într-un interval definit.
  • Produsul Numpy.dot este o bibliotecă puternică pentru calculul matricial.
  • Funcția Numpy matmul() este utilizată pentru a returna produsul matriceal a 2 tablouri.