Я хочу заменить outliners из списка. Поэтому я определяю верхнюю и нижнюю границы. Теперь каждое значение выше upper_bound
и под lower_bound
заменяется связанным значением. Мой подход состоял в том, чтобы сделать это в два этапа, используя массив numpy.
Теперь я задаюсь вопросом, можно ли сделать это за один шаг, так как я предполагаю, что это может улучшить производительность и удобочитаемость.
Есть ли более короткий способ сделать это?
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)