Python Tutorial NumPy pentru începători
⚡ Rezumat inteligent
NumPy este fundamental Python bibliotecă pentru calcul numeric, alimentarea tablourilor, matricilor, algebră liniară și eșantionare aleatorie. Acest tutorial NumPy prezintă instalarea, crearea tablourilor, reorganizareaping, feliere, statistică și matematică matriceală cu funcționalități rulabile Python exemple.

În ce este NumPy Python?
NumPy este o sursă deschisă Python bibliotecă pentru programare matematică, științifică, inginerească și știința datelor. Este o bibliotecă foarte utilă pentru operații matematice și statistice în PythonFuncționează perfect cu tablouri multidimensionale și înmulțiri matriceale și se integrează ușor cu C/C++ și Fortran.
Pentru orice proiect științific, NumPy este instrumentul pe care trebuie să-l cunoașteți. Este construit pentru tablouri N-dimensionale, algebră liniară, generarea de numere aleatorii, transformate Fourier și multe altele.
NumPy dă Python suport de primă clasă pentru tablouri și matrici multidimensionale, plus un set mare de operații matematice care acționează asupra acestora. În acest ghid, vom trece în revistă funcțiile esențiale pe care trebuie să le cunoașteți înainte de a trece la tutorialul despre 'TensorFlow
De ce să folosiți NumPy?
NumPy este eficient din punct de vedere al memoriei, deci poate gestiona volume mari de date numerice mai ușor decât datele pure. Python liste. De asemenea, este foarte convenabil pentru înmulțirea matricelor și redistribuirepingși este rapid deoarece munca grea este delegată rutinelor C compilate. De fapt, biblioteci precum TensorFlow, PyTorch și Scikit-learn se bazează pe matricele NumPy pentru calcule matriceale în back-end-ul lor, ceea ce face ca NumPy să fie instrumentul silențios din spatele majorității fluxurilor de lucru moderne de știință a datelor și inteligență artificială.
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 rar în care NumPy nu este instalat, utilizați oricare dintre opțiunile de mai jos.
Puteți instala NumPy folosind Anaconda:
conda install -c anaconda numpy
- In Jupyter Notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy
Utilizatorii Pip pot instala sau actualiza cu o singură comandă:
pip install --upgrade numpy
Importați NumPy și verificați versiunea
Comanda pentru a importa numpy este:
import numpy as np
Linia de mai sus redenumește spațiul de nume NumPy în npAceastă comandă rapidă vă permite să adăugați un prefix funcțiilor, metodelor și atributelor NumPy cu np. în loc de mulțumescping numpy.și este convenția standard pe care o veți găsi în ecosistemul NumPy.
Pentru a verifica versiunea instalată de NumPy, utilizați comanda de mai jos:
print(np.__version__)
ieșire:
2.1.3
NumPy 2.0 a fost lansat în iunie 2024 și este seria majoră stabilă actuală. Dacă proiectul dvs. depinde încă de API-ul 1.x, fixați la numpy<2 în fișierul de cerințe, deoarece unele aliasuri vechi, cum ar fi np.float au fost eliminate în 2.0.
Ce este a Python NumPy Array?
Tablourile NumPy arată cam ca Python liste la prima vedere, dar se comportă foarte diferit. Pentru cititorii noi în acest subiect, să clarificăm ce este un ndarray și de ce este important.
Așa cum sugerează și numele, un array NumPy este structura centrală de date a bibliotecii NumPy. Numele în sine este o prescurtare de la „Numeric” (sau „Numeric”). Python” sau „Numeric Python„”, iar ndarray este un bloc de memorie omogen, de dimensiune fixă, cu o formă și un tip de date cunoscute.
Crearea unei matrice NumPy
Cea mai simplă metodă de a crea un array în NumPy este să pornești de la Python Listă.
myPythonList = [1,9,8,3]
Se transformă Python listă într-un array NumPy folosind np.array.
numpy_array_from_list = np.array(myPythonList)
Afișați conținutul matricei.
numpy_array_from_list
ieșire:
array([1, 9, 8, 3])
În practică, nu este necesară declararea a Python enumerați mai întâi. Cei doi pași pot fi combinați.
a = np.array([1,9,8,3])
NOTĂ: Documentația NumPy menționează, de asemenea, np.ndarray, Dar np.array este funcția recomandată din fabrică pentru utilizarea zilnică.
De asemenea, puteți crea un tablou NumPy dintr-un tuplu în același mod.
Matematic Operape un Array
Puteți efectua operații matematice precum adunarea, subdivizareatracîmpărțire și înmulțire pe un tablou. Sintaxa este numele tabloului, urmat de operatorul (+, -, *, /), urmată de operand. Aceste operații sunt vectorizate, ceea ce înseamnă că NumPy le aplică fiecărui element fără o funcție explicită Python buclă.
Exemplu:
numpy_array_from_list + 10
ieșire:
array([11, 19, 18, 13])
Această operație adună 10 la fiecare element al tabloului NumPy.
Forma matricei
Puteți verifica forma unei matrice cu shape atribut, accesat prin adăugarea lui la numele matricei. În același mod, puteți verifica tipul cu dtype.
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ă virgulă. Dacă creați o matrice cu zecimale, tipul de date se schimbă în număr 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 o virgulă în paranteze.
Rețineți că tuplurile interioare trebuie să se afle în parantezele exterioare [].
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3 Dimension Array
Dimensiuni superioare pot fi construite în același mod.
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
| Obiectiv | Code |
|---|---|
| Creați matrice | matrice([1,2,3]) |
| imprimați forma | matrice([.]).formă |
Ce este numpy.zeros()?
numpy.zeros() or np.zeros este Python funcție utilizată pentru a crea o matrice umplută cu zerouri. numpy.zeros() este util atunci când trebuie să inițializezi ponderile în timpul primei iterații în TensorFlow sau să configurezi buffere substituibile pentru alte sarcini statistice.
Funcția numpy.zeros() Sintaxă
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parametri
Aici,
- Modela: forma tabloului de zerouri NumPy.
- Dtype: tipul de date al elementelor. Este opțional, iar valoarea implicită este
float64. - Order: implicit este
C, care este aspectul pe rânduri principale utilizat denumpy.zeros()in 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(). creează o matrice umplută cu numere de unități. numpy.ones() in Python este util atunci când inițializezi ponderi în timpul primei iterații în TensorFlow și pentru alte sarcini statistice.
Python numpy.ones() Sintaxă
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parametri
Aici,
- Modelaforma unităților np Python Mulțime.
- Dtype: tipul de date al elementelor. Este opțional, iar valoarea implicită este
float64. - Order: implicit este
C, care este aspectul pe rânduri principale.
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 modifică forma unei matrice fără a-i modifica datele. Este posibil să fie nevoie să remodelați datele din format lat în format lung sau să treceți de la un vector 1D la o matrice 2D înainte de a le introduce într-un model. np.reshape Funcția gestionează acest lucru într-un singur apel.
Sintaxa lui np.reshape()
numpy.reshape(a, newShape, order='C')
Aici,
a: matricea pe care doriți să o remodelați.
newShape: noua formă dorită.
Order: implicit este C, aspectul pe rânduri principale.
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 returnează o copie a matricei restrânse într-o singură dimensiune. Când lucrați cu rețele neuronale, cum ar fi convnets, adesea trebuie să aplatizați un tensor de imagine înainte de a-l transmite unui strat dens. np.flatten() Funcția gestionează acest lucru într-un singur apel.
Sintaxa lui np.flatten()
numpy.flatten(order='C')
Aici,
Order: implicit este C, aspectul pe rânduri principale.
Exemplu de NumPy Flatten
e.flatten()
ieșire:
array([1, 2, 3, 4, 5, 6])
Ce este numpy.hstack() în Python?
numpy.hstack este Python funcție utilizată pentru a stivui orizontal secvențe de tablouri de intrare într-un singur tablou. Cu hstack(), adăugați date de-a lungul axei coloanei. Este un instrument foarte util în NumPy atunci când trebuie să îmbinați vectori de caracteristici unul lângă altul.
Să studiem hstack in Python cu un exemplu.
Exemplu:
## Horizontal 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 Python funcție utilizată pentru a stivui vertical secvențe de tablouri de intrare într-un singur tablou. Cu vstack(), adăugați date de-a lungul axei rândurilor, ceea ce este util atunci când doriți să combinați loturi de eșantioane.
Să o 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ă ne uităm la un exemplu care generează numere aleatorii în NumPy.
Generați aleatoriu Numbers folosind NumPy
Pentru a genera numere aleatorii dintr-o distribuție gaussiană, utilizați:
numpy.random.normal(loc, scale, size)
Aici,
- Loc: media. Centrul distribuției.
- Scară: abaterea standard.
- Mărimea: numărul de eșantioane returnate.
Exemplu:
## Generate random numbers from a 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 este similară cu următoarea diagramă.

Rețineți că codul mai nou folosește din ce în ce mai mult API-ul generator modern, np.random.default_rng(), care este înlocuitorul recomandat pentru versiunea veche np.random.normal apeluri în NumPy 2.x.
Funcția NumPy Asarray
asarray() Funcția convertește o intrare într-un array. Intrarea poate fi o listă, un tuplu, o matrice (ndarray) sau o secvență similară.
Sintaxă:
numpy.asarray(data, dtype=None, order=None)
Aici,
de date: date pe care doriți să le convertiți într-o matrice.
dtype: opțional. Dacă nu este specificat, tipul de date este dedus din datele de intrare.
Order: implicit este C, aspectul pe rânduri principale. Cealaltă opțiune este F (Fortracoloană majoră în stil n).
Exemplu:
Luați în considerare următoarea matrice 2D cu patru rânduri și patru coloane, umplută cu 1.
import numpy as np A = np.matrix(np.ones((4,4)))
Dacă încercați să modificați o valoare din matrice prin np.array, originalul nu este modificat. Motivul este că np.array creează o copie a matricei.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Matricea este neschimbată. Folosește asarray când vrei să modifici matricea originală la locul ei. Să vedem ce se întâmplă când setezi al treilea rând la valoarea 2.
np.asarray(A)[2]=2 print(A)
Code Explicaţie:
np.asarray(A) convertește matricea A la o vizualizare de tip matrice.
[2] selectează 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 ndarray care conține valori distanțate uniform într-un interval definit. De exemplu, pentru a crea valori de la 1 la 10, puteți apela np.arange() in Python.
Sintaxă:
numpy.arange(start, stop, step, dtype)
Python NumPy range Parametri:
- acasăînceputul intervalului pentru
np.arangein Python. - Stop: sfârșitul intervalului.
- Pas: spațiere între valori. Pasul implicit este 1.
- Dtype: tipul matricei de ieșire pentru NumPy
arange.
Exemplu:
import numpy as np np.arange(1, 11)
ieșire:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Exemplu:
Pentru a schimba pasul în acest NumPy arange De exemplu, adăugați un al treilea număr la paranteze. Aceasta modifică dimensiunea pasului.
import numpy as np np.arange(1, 14, 4)
ieșire:
array([ 1, 5, 9, 13])
Funcția NumPy Linspace
linspace returnează eșantioane distanțate uniform între două puncte finale.
Sintaxă:
numpy.linspace(start, stop, num, endpoint)
Aici,
- acasă: valoarea inițială a secvenței.
- Stop: valoarea finală a secvenței.
- În: numărul de eșantioane de generat. Implicit este 50.
- Punct final: dacă
True(Mod implicit),stopeste ultima valoare. DacăFalse,stopnu este inclus.
Exemplu:
De exemplu, poate fi folosit pentru a crea 10 valori distanțate uniform de la 1 la 5.
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ă din interval, setați endpoint la False.
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 distanțate uniform 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 singur element dintr-o matrice, puteți utiliza itemsize.
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
Secționarea datelor este simplă cu NumPy. Vom secționa matricea e. În Python, utilizați paranteze pătrate pentru a returna rânduri sau coloane.
Exemplu:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Rețineți că în NumPy primul index al matricei începe de la 0.
## First row print('First row:', e[0]) ## Second row print('Second row:', e[1])
ieșire:
First row: [1 2 3] Second row: [4 5 6]
In Python, ca în multe alte limbi,
- Valoarea dinaintea virgulei reprezintă rândurile.
- Valoarea de după virgulă reprezintă coloanele.
- Dacă doriți să selectați o coloană, adăugați
:înaintea indexului 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, utilizați : pentru a selecta toate coloanele până la al doilea index.
## Second Row, two values print(e[1, :2]) [4 5]
Funcții statistice în Python
NumPy oferă un set util de funcții statistice pentru găsirea minimului, maximului, percentilei, deviației standard, varianței și a altor valori dintr-un array dat. Cele mai comune sunt enumerate mai jos.
NumPy este livrat cu instrumente statistice robuste, rezumate în tabel.
| 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ții statistice 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?
numpy.dot este o funcție puternică pentru calculul matricelor. De exemplu, puteți calcula produsul scalar cu np.dot. numpy.dot returnează produsul scalar al a și bși gestionează atât tablouri 1D, cât și 2D. Pentru intrări 2D, efectuează multiplicarea matricei.
Sintaxă:
numpy.dot(x, y, out=None)
parametrii
Aici,
X y: tablouri de intrare. x și y ar trebui să fie ambele 1D sau 2D pentru np.dot() să funcționeze ca produs scalar sau înmulțire matriceală.
afară: argument opțional de ieșire folosit pentru a captura rezultatul. În caz contrar, se returnează o valoare ndarray.
Returnări
Funcția numpy.dot() returnează produsul scalar a două tablouri x și yReturnează un scalar când ambele sunt 1D, altfel returnează un tablou. Dacă out este dat, se returnează matricea respectivă.
Raiseul
Produsul scalar în Python ridică a ValueError dacă ultima dimensiune a x nu corespunde cu penultima dimensiune a 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
NumPy matmul() Funcția returnează produsul matriceal a două tablouri. Iată cum funcționează.
1) Pentru tablourile 2D, returnează produsul matriceal normal.
2) Pentru dimensiuni mai mari de 2, produsul este tratat ca o stivă de matrici.
3) O matrice 1D este mai întâi promovată la o matrice, apoi se calculează produsul.
Infixul @ operator, disponibil de la Python 3.5, este o prescurtare pentru matmul și este utilizat pe scară largă în codul modern.
Sintaxă:
numpy.matmul(x, y, out=None)
Aici,
X y: tablouri de intrare. Scalarele nu sunt permise.
afară: parametru opțional. De obicei, ieșirea este stocată într-un ndarray.
Exemplu:
În același mod, puteți calcula înmulțirea matricei cu np.matmul.
### Matmul: matrix 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
Dacă trebuie să calculați determinantul unei matrice, utilizați np.linalg.det()NumPy se ocupă de dimensiuni pentru tine.
Exemplu:
## Determinant 2*2 matrix ### 5*8-7*6 np.linalg.det(i)
ieșire:
-2.000000000000005
Explicația transmisiunii NumPy
Difuzarea este regula care permite NumPy să efectueze calcule aritmetice pe tablouri de forme diferite fără a copia datele. Când adăugați un scalar la un vector 1D sau un vector 1D la o matrice 2D, NumPy întinde operandul mai mic de-a lungul axelor lipsă, astfel încât formele să se alinieze. Acest lucru evită explicitele... Python bucle și este unul dintre principalele motive pentru care codul NumPy pare rapid și concis.
Două forme sunt compatibile pentru difuzare atunci când, comparate de la dreapta la stânga, fiecare pereche de dimensiuni este fie egală, fie una dintre ele este egală cu 1. De exemplu, o matrice de formă (3, 4) difuzează pe un rând de forme (4,) sau o coloană de formă (3, 1)Aceeași logică susține normalizarea în învățarea automată, unde subordonezitracun vector mediu per caracteristică dintr-un lot de eșantioane pe o singură linie. Broadcasting-ul este, de asemenea, modelul conceptual utilizat de bibliotecile tensoriale precum PyTorch, TensorFlow și JAX, deci regulile pe care le înveți aici se transferă direct în codul GPU.
Cum NumPy alimentează inteligența artificială și învățarea automată
NumPy se află sub aproape fiecare sistem modern Python Stivă AI. PyTortensorii ch, tensorii TensorFlow eager și matricele JAX expun aceleași funcții de broadcasting, slicing și resharingping API pe care l-ai învățat pe NumPy ndarrays. Multe tutoriale încă introduc tablouri NumPy preprocesate în buclele de antrenament ale modelelor, iar framework-urile le acceptă fără conversie.
Trei modele concrete arată cum se conectează NumPy la munca de inteligență artificială astăzi. În primul rând, inginerii de date modelează caracteristicile brute în matrice NumPy înainte de a le preda către conducte scikit-learn sau către seturi de date Hugging Face. În al doilea rând, cercetătorii folosesc NumPy ca bază pentru CPU și apoi introduc CuPy, care oferă o API aproape identică, dar rulează pe GPU-uri NVIDIA prin CUDA. În al treilea rând, JAX se bazează pe API-ul NumPy pentru a adăuga diferențiere automată și compilare just-in-time, astfel încât același cod care rulează pe laptop poate rula pe TPU-uri în cloud. Concluzia este că abilitățile de gestionare a matricelor pe care le construiți cu NumPy se regăsesc în fiecare set de instrumente majore de deep learning, ceea ce face ca acest tutorial să fie un pas util pe drumul către dezvoltarea inteligenței artificiale.
