mars.tensor.clip#

mars.tensor.clip(a, a_min, a_max, out=None)[source]#

Clip (limit) the values in a tensor.

Given an interval, values outside the interval are clipped to the interval edges. For example, if an interval of [0, 1] is specified, values smaller than 0 become 0, and values larger than 1 become 1.

Parameters
  • a (array_like) – Tensor containing elements to clip.

  • a_min (scalar or array_like or None) – Minimum value. If None, clipping is not performed on lower interval edge. Not more than one of a_min and a_max may be None.

  • a_max (scalar or array_like or None) – Maximum value. If None, clipping is not performed on upper interval edge. Not more than one of a_min and a_max may be None. If a_min or a_max are array_like, then the three arrays will be broadcasted to match their shapes.

  • out (Tensor, optional) – The results will be placed in this tensor. It may be the input array for in-place clipping. out must be of the right shape to hold the output. Its type is preserved.

Returns

clipped_array – An tensor with the elements of a, but where values < a_min are replaced with a_min, and those > a_max with a_max.

Return type

Tensor

Examples

>>> import mars.tensor as mt
>>> a = mt.arange(10)
>>> mt.clip(a, 1, 8).execute()
array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])
>>> a.execute()
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> mt.clip(a, 3, 6, out=a).execute()
array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
>>> a = mt.arange(10)
>>> a.execute()
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> mt.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4], 8).execute()
array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])