Ce face Operații element cu element și ufunc-uri
Operatorii +, -, *, /, //, % și ** lucrează element cu element: a * b înmulțește primul element din a cu primul din b și așa mai departe. Tablourile trebuie să aibă aceeași formă sau forme compatibile prin broadcasting.
Funcțiile universale (ufunc-uri) ca np.sqrt, np.exp, np.log, np.abs fac același lucru pentru operații matematice. Sunt scrise în C și sunt mult mai rapide decât o buclă Python.
np.round(a, decimals) rotunjește la numărul de zecimale cerut. Atenție: valorile exact la jumătate se rotunjesc la numărul par cel mai apropiat (np.round(2.5) dă 2.0).
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Tablouri (sau scalari) cu forme compatibile. |
decimals |
La np.round: numărul de zecimale. Implicit 0; poate fi negativ (rotunjire la zeci, sute). |
out |
Opțional, la ufunc-uri: tabloul în care se scrie rezultatul. |
Ce returnează
Un tablou nou cu rezultatul pentru fiecare element.
Exemple
Exemplul 1: Aritmetică pe coșul de cumpărături
import numpy as np
preturi = np.array([4.5, 12.0, 7.25])
cantitati = np.array([2, 1, 4])
total = preturi * cantitati
print(total)
print("De plată:", total.sum(), "lei")
print(cantitati ** 2)
print(cantitati // 3, cantitati % 3)
Rezultat
[ 9. 12. 29.]
De plată: 50.0 lei
[ 4 1 16]
[0 0 1] [2 1 1]
Exemplul 2: np.sqrt, np.exp, np.abs
import numpy as np
suprafete = np.array([16, 25, 2])
print(np.sqrt(suprafete))
print(np.exp(np.array([0, 1])))
print(np.abs(np.array([-3, 5, -1])))
Rezultat
[4. 5. 1.41421356]
[1. 2.71828183]
[3 5 1]
Exemplul 3: Rotunjire
Cu decimals=-1 se rotunjește la zeci. 0.5 și 2.5 merg la cel mai apropiat număr par.
import numpy as np
medii = np.array([8.456, 9.333, 7.5])
print(np.round(medii, 2))
print(np.round(np.array([1234, 5678]), -1))
print(np.round(np.array([0.5, 1.5, 2.5])))
Rezultat
[8.46 9.33 7.5 ]
[1230 5680]
[0. 2. 2.]
Greșeli frecvente
- Aștepți ca
a * bsă fie produs de matrice. Este produs element cu element; pentru matrice foloseștea @ bsaunp.matmul. - Folosești
math.sqrt(a)pe un tablou: dăTypeError. Funcțiile dinmathlucrează doar cu un număr; foloseștenp.sqrt. - Împarți la zero sau iei
np.sqrtdintr-un număr negativ: rezultatul esteinfsaunan, însoțit de unRuntimeWarning, nu de o eroare. Verifică datele înainte.
Comenzi înrudite
Broadcasting: Regulile prin care NumPy face operații între tablouri de forme diferite, de exemplu o matrice și un rând sau un scalar.np.clip(): Limitează valorile unui tablou la un interval: ce e sub minim devine minimul, ce e peste maxim devine maximul.np.sum(): Adună elementele unui tablou: pe tot tabloul, pe coloane (axis=0) sau pe rânduri (axis=1).np.matmul() și operatorul @: Înmulțirea de matrice cu np.matmul sau operatorul @; diferența față de *, care înmulțește element cu element.