Ce face np.clip()
np.clip(a, 1, 10) înlocuiește fiecare valoare mai mică decât 1 cu 1 și fiecare valoare mai mare decât 10 cu 10. Valorile din interval rămân neschimbate.
Una dintre limite poate fi None: np.clip(a, 0, None) taie doar valorile negative. Limitele pot fi și tablouri, câte o limită pentru fiecare element (prin broadcasting).
Metoda a.clip(min, max) face același lucru. Din NumPy 2.1 funcția acceptă și numele min= și max=, pe lângă a_min și a_max.
Parametri
| Parametru | Descriere |
|---|---|
a |
Tabloul de limitat. |
a_min / min |
Limita de jos sau None (fără limită de jos). |
a_max / max |
Limita de sus sau None (fără limită de sus). |
out |
Opțional. Tablou în care se scrie rezultatul (de exemplu chiar a, pentru modificare pe loc). |
Ce returnează
Un tablou nou cu valorile limitate (sau out, dacă a fost dat).
Exemple
Exemplul 1: Note între 1 și 10
După un calcul cu bonus, unele note ies din intervalul permis.
import numpy as np
note = np.array([9.5, 11.0, 4.0, 10.5, 0.5])
print(np.clip(note, 1, 10))
print(note.clip(1, 10))
print(note)
Rezultat
[ 9.5 10. 4. 10. 1. ]
[ 9.5 10. 4. 10. 1. ]
[ 9.5 11. 4. 10.5 0.5]
Exemplul 2: Doar o limită și limite pe element
import numpy as np
stoc = np.array([5, -2, 0, 8, -1])
print(np.clip(stoc, 0, None))
print(np.clip(stoc, min=0))
maxime = np.array([3, 3, 3, 5, 5])
print(np.clip(stoc, 0, maxime))
Rezultat
[5 0 0 8 0]
[5 0 0 8 0]
[3 0 0 5 0]
Greșeli frecvente
- Crezi că
np.clipschimbă tabloul pe loc. Returnează un tablou nou; păstrează-l sau dăout=a. - Dai limitele inversate (
np.clip(a, 10, 1)): nu apare eroare, dar toate valorile devin 1. Ordinea este minim, apoi maxim. - Folosești
np.clippentru a scoate valorile din afara intervalului.cliple înlocuiește cu limitele, nu le elimină; pentru eliminare folosește o mască:a[(a >= 1) & (a <= 10)].
Comenzi înrudite
Măști booleene: Selectează elementele care îndeplinesc o condiție, cu un tablou de True/False pus între paranteze pătrate.Operații element cu element și ufunc-uri: Operatorii aritmetici și funcțiile matematice NumPy (ufunc-uri) se aplică pe fiecare element, fără bucle.np.where(): Cu trei argumente alege valori după o condiție (dacă-altfel pe tablouri); cu un argument returnează pozițiile unde condiția e adevărată.np.min() și np.max(): Găsește valoarea minimă și maximă (np.min, np.max), diferența dintre ele (np.ptp) și maximul element cu element (np.maximum).