Maneira pitônica de substituir valores de lista por limites superior e inferior (fixação, recorte, limiar)?
Quero substituir os contornos de uma lista. Portanto, defino um limite superior e inferior. Agora todos os valores acimaupper_bound
e abaixolower_bound
é substituído pelo valor associado. Minha abordagem foi fazer isso em duas etapas, usando uma matriz numpy.
Agora, me pergunto se é possível fazer isso em uma única etapa, pois acho que isso poderia melhorar o desempenho e a legibilidade.
Existe uma maneira mais curta de fazer isso?
import numpy as np
lowerBound, upperBound = 3, 7
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[arr > upperBound] = upperBound
arr[arr < lowerBound] = lowerBound
# [3 3 3 3 4 5 6 7 7 7]
print(arr)