flopscope.numpy.clip
fnp.clip(a, a_min=<no value>, a_max=<no value>, out=None, *, min=<no value>, max=<no value>, **kwargs)[flopscope source][numpy source]
Clip (limit) the values in an array.
Adapted from NumPy docs np.clip
Clip array to [a_min, a_max] element-wise.
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.
Equivalent to but faster than flops.minimum(a_max, flops.maximum(a, a_min)).
No check is performed to ensure a_min < a_max.
Parameters
- a:array_like
Array containing elements to clip.
- a_min, a_max:array_like or None
Minimum and maximum value. If
None, clipping is not performed on the corresponding edge. If botha_minanda_maxareNone, the elements of the returned array stay the same. Both are broadcasted againsta.- out:ndarray, optional
The results will be placed in this array. It may be the input array for in-place clipping.
outmust be of the right shape to hold the output. Its type is preserved.- min, max:array_like or None
Array API compatible alternatives for
a_minanda_maxarguments. Eithera_minanda_maxor min and max can be passed at the same time. Default:None.Added in version 2.1.0.- **kwargs
For other keyword-only arguments, see the ufunc docs.
Returns
- clipped_array:ndarray
An array with the elements of
a, but where values <a_minare replaced witha_min, and those >a_maxwitha_max.
See also
Notes
When a_min is greater than a_max, clip returns an
array in which all values are equal to a_max,
as shown in the second example.
Examples
>>> import flopscope.numpy as fnp
>>> a = flops.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> flops.clip(a, 1, 8)
array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])
>>> flops.clip(a, 8, 1)
array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
>>> flops.clip(a, 3, 6, out=a)
array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
>>> a
array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
>>> a = flops.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> flops.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4], 8)
array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])