Ce face np.min() și np.max()
np.min() și np.max() (sau metodele a.min(), a.max()) returnează cea mai mică și cea mai mare valoare dintr-un tablou. Cu axis=0 obții minimul/maximul fiecărei coloane, cu axis=1 al fiecărui rând. np.ptp() („peak to peak”) returnează diferența max - min.
np.maximum(x1, x2) este altceva: compară două tablouri element cu element și păstrează, pe fiecare poziție, valoarea mai mare. Merge și cu un scalar, de exemplu np.maximum(a, 0) înlocuiește valorile negative cu 0. Perechea ei este np.minimum().
Pe un tablou gol, np.max() dă ValueError, pentru că nu există maxim. Dacă tabloul poate fi gol, dă o valoare de pornire cu initial=.
Parametri
| Parametru | Descriere |
|---|---|
a |
Tabloul. |
axis |
Axa pe care se caută; None = tot tabloul. |
initial |
Valoare de pornire; permite tablouri goale. |
where |
Mască: se iau în calcul doar elementele cu True (cere și initial). |
x1, x2 |
La np.maximum: cele două tablouri (sau tablou și scalar) comparate element cu element. |
Ce returnează
np.min/np.max/np.ptp: un scalar sau un tablou pe axa rămasă. np.maximum: un tablou cu forma rezultată din broadcasting.
Exemple
Exemplul 1: Temperaturi minime și maxime pe oraș
Rândurile sunt Iași, Cluj, Constanța; coloanele sunt patru zile.
import numpy as np
temp = np.array([
[3, 7, 5, -1],
[1, 4, 6, 2],
[8, 9, 7, 10],
])
print("Minim general:", temp.min())
print("Maxim pe oraș:", temp.max(axis=1))
print("Minim pe zi:", np.min(temp, axis=0))
print("Amplitudine pe oraș:", np.ptp(temp, axis=1))
Rezultat
Minim general: -1
Maxim pe oraș: [ 7 6 10]
Minim pe zi: [ 1 4 5 -1]
Amplitudine pe oraș: [8 5 3]
Exemplul 2: np.max și np.maximum
np.max reduce un tablou la o valoare; np.maximum compară două tablouri poziție cu poziție.
import numpy as np
oferta_a = np.array([120, 95, 210, 80])
oferta_b = np.array([110, 105, 190, 85])
print(np.max(oferta_a))
print(np.maximum(oferta_a, oferta_b))
print(np.minimum(oferta_a, oferta_b))
Rezultat
210
[120 105 210 85]
[110 95 190 80]
Exemplul 3: Înlocuirea valorilor negative cu 0
import numpy as np
sold = np.array([150, -20, 0, -75, 300])
print(np.maximum(sold, 0))
print(np.max(np.array([]), initial=0))
Rezultat
[150 0 0 0 300]
0.0
Greșeli frecvente
- Scrii
np.max(a, b)ca să compari două tablouri: al doilea argument esteaxis, nu al doilea tablou. Pentru comparație element cu element foloseștenp.maximum(a, b). - Folosești
max()din Python pe un tablou 2D: compară rândurile ca întreg și dăValueError(„truth value … is ambiguous”). Foloseștea.max(). - Apelezi
np.min()pe un tablou gol (de exemplu după un filtru care nu a găsit nimic) și primeștiValueError. Verificăa.sizesau dăinitial=.
Comenzi înrudite
np.argmax(): Returnează poziția (indicele) valorii maxime sau minime, nu valoarea; np.unravel_index transformă indicele în rând și coloană.np.sum(): Adună elementele unui tablou: pe tot tabloul, pe coloane (axis=0) sau pe rânduri (axis=1).np.clip(): Limitează valorile unui tablou la un interval: ce e sub minim devine minimul, ce e peste maxim devine maximul.np.nan și funcțiile nan*: Lucrul cu valori lipsă: np.nan, np.isnan și funcțiile nansum, nanmean, nanmin, nanmax care ignoră NaN.