
Per limitare i valori dell’array NumPy ndarray a un determinato intervallo, utilizzare il metodo np.clip() o clip() di ndarray.
Specificando i valori minimo e massimo nell’argomento, i valori fuori intervallo vengono sostituiti con tali valori.
Ciò è quando utile si desidera limitare i valori a un intervallo come 0,0 ~ 1,0 o 0 ~ 255.
In questo articolo vengono descritti i seguenti contenuti.
- Vieni a usare np.clip()
- Come usare il metodo clip() di ndarray
Vieni a usare np.clip()
Specificare l’array di destinazione ndarray nel primo argomento a, il valore minimo nel secondo argomento a_min e il valore massimo nel terzo argomento a_max.
import numpy as np
a = np.arange(10)
print(a)
# [0 1 2 3 4 5 6 7 8 9]
print(np.clip(a, 2, 7))
# [2 2 2 3 4 5 6 7 7 7]
Nessuno Utilizzare se si desidera specificare solo uno dei valori minimo e massimo. Non può essere omesso.
print(np.clip(a, None, 7))
# [0 1 2 3 4 5 6 7 7 7]
print(np.clip(a, 2, None))
# [2 2 2 3 4 5 6 7 8 9]
# print(np.clip(a, 2))
# TypeError: clip() missing 1 required positional argument: 'a_max'
Il ndarray ritagliato viene restituito e il ndarray originale rimane invariato.
a_clip = np.clip(a, 2, 7)
print(a_clip)
# [2 2 2 3 4 5 6 7 7 7]
print(a)
# [0 1 2 3 4 5 6 7 8 9]
Come usare il metodo clip() di ndarray
Il metodo clip() di ndarray è quasi lo stesso.
Specificare il valore minimo nel primo argomento min e il valore massimo nel secondo argomento max.
print(a.clip(2, 7))
# [2 2 2 3 4 5 6 7 7 7]
print(a.clip(None, 7))
# [0 1 2 3 4 5 6 7 7 7]
print(a.clip(2, None))
# [2 2 2 3 4 5 6 7 8 9]
A differenza di np.clip(), min e max possono essere omessi perché None è impostato come valore predefinito per min e max.
Nota che i nomi degli argomenti sono leggermente diversi da np.clip(), quindi fai attenzione quando li specifici come argomenti delle parole chiave.
print(a.clip(2))
# [2 2 2 3 4 5 6 7 8 9]
print(a.clip(min=2))
# [2 2 2 3 4 5 6 7 8 9]
print(a.clip(max=7))
# [0 1 2 3 4 5 6 7 7 7]
Come con np.clip(), viene restituito il ndarray ritagliato e il ndarray originale rimane invariato.
a_clip = a.clip(2, 7)
print(a_clip)
# [2 2 2 3 4 5 6 7 7 7]
print(a)
# [0 1 2 3 4 5 6 7 8 9]