Установить границы в 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.  ]])
→ Ссылка