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]])