Установить границы в numpy array
Я хотел бы провести серию экспериментов, добавляя некоторый шум к картинке (numpy array 28x28). Каждый элемент массива содержится в интервале [0,1], однако при добавлении шума (из интервала [-1,1]) элемент может "выпасть за интервал". Есть ли какая-то функция для установления границ массива? Не записывая это через 2 цикла и оператор "if"? Заранее спасибо!
массив:
[0.75 0.24],
[0.04 0.99]
шум:
[0.14 0.14],
[0.14 0.14]
ожидаемый результат
[0.89 0.38],
[0.18 1.]
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Воспользуйтесь функцией np.clip():
In [257]: a
Out[257]:
array([[0.75, 0.24],
[0.04, 0.99]])
In [258]: noice
Out[258]:
array([[0.14, 0.14],
[0.14, 0.14]])
In [259]: res = np.clip(a + noice, a_max=1, a_min=0)
результат:
In [260]: res
Out[260]:
array([[0.89, 0.38],
[0.18, 1. ]])