numpy.clip

numpy.clip(a, a_min, a_max, out=None)

Функция clip() ограниченичивает элементы массива указанным интервалом допустимых значений. Например, если указать интервал [5, 10], то все значения в массиве, которые меньше 5 примут значение равное 5, а все значения больше 10, будут равны 10.

Параметры:
a - массив или подобный массиву объект
Входной массив.
a_min - число, массив, подобный массиву объект или None
Минимальное значение интервала. Если указано значение None, то обзка по нижнему значению интервала не выполняется.
a_max - число, массив или подобный массиву объект
Максимальное значение интервала. Если указано значение None, то обзка по верхнему значению интервала не выполняется.
out - аргументы универсальной функции
Массив в который помещается результат обрезки входного массива. Данный параметр позволяет избежать лишней операции присваивания, что дает небольшой выигрышь в скорости. Значением параметра может быть как входной массив, так и любой другой, подходящей формы, причем тип данных указанного массива сохраняется.
Возвращает:
результат - массив NumPy
Массив с формой и элементами входного массива a, но значения меньшие или большие чем a_min или a_max в нем заменены на a_min и a_max соответственно.

Замечание

Только одно из значений a_min или a_max может иметь значение None. Если данные параметры являются массивами NumPy или подобными массивам объектами то все три массива: a, a_min и a_max будут транслироваться согласно их форме.


Примеры

>>> import numpy as np
>>> 
>>> a = np.arange(7)
>>> a
array([0, 1, 2, 3, 4, 5, 6])
>>> 
>>> np.clip(a, 1, 5)
array([1, 1, 2, 3, 4, 5, 5])
>>> 
>>> #  Укажем выходной массив:
... np.clip(a, 1, 5, out = a)
array([1, 1, 2, 3, 4, 5, 5])
>>> a
array([1, 1, 2, 3, 4, 5, 5])
>>> 
>>> #  Тип данных выходного массива сохраняется:
... b = np.ones(7, dtype = np.float64)
>>> 
>>> np.clip(a, 1, 5, out = b)
array([1., 1., 2., 3., 4., 5., 5.])
>>> b
array([1., 1., 2., 3., 4., 5., 5.])
>>> 
>>> 
>>> #  Формы массивов могут транслироваться:
... a = np.random.randint(0, 7, size = (4, 5))
>>> a
array([[6, 5, 1, 3, 3],
       [5, 6, 1, 1, 0],
       [5, 1, 2, 6, 4],
       [5, 0, 1, 1, 0]])
>>> 
>>> np.clip(a, 2, 5)
array([[5, 5, 2, 3, 3],
       [5, 5, 2, 2, 2],
       [5, 2, 2, 5, 4],
       [5, 2, 2, 2, 2]])
>>> 
>>> np.clip(a, [[4], [3], [2], [1]], 5)
array([[5, 5, 4, 4, 4],
       [5, 5, 3, 3, 3],
       [5, 2, 2, 5, 4],
       [5, 1, 1, 1, 1]])
>>> 
>>> np.clip(a, 2, [5, 4, 5, 4, 5])
array([[5, 4, 2, 3, 3],
       [5, 4, 2, 2, 2],
       [5, 2, 2, 4, 4],
       [5, 2, 2, 2, 2]])