numpy.clip#
- numpy.clip(a, a_min=<no value>, a_max=<no value>, out=None, *, min=<no value>, max=<no value>, **kwargs)[source]#
Clip (limit) the values in an array.
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
np.minimum(a_max, np.maximum(a, a_min))
.No check is performed to ensure
a_min < a_max
.- Parameters:
- aarray_like
Array containing elements to clip.
- a_min, a_maxarray_like or None
Minimum and maximum value. If
None
, clipping is not performed on the corresponding edge. If botha_min
anda_max
areNone
, the elements of the returned array stay the same. Both are broadcasted againsta
.- outndarray, optional
The results will be placed in this array. 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.
- min, maxarray_like or None
Array API compatible alternatives for
a_min
anda_max
arguments. Eithera_min
anda_max
ormin
andmax
can be passed at the same time. Default:None
.New in version 2.1.0.
- **kwargs
For other keyword-only arguments, see the ufunc docs.
New in version 1.17.0.
- Returns:
- clipped_arrayndarray
An array with the elements of a, but where values < a_min are replaced with a_min, and those > a_max with a_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 numpy as np >>> a = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.clip(a, 1, 8) array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8]) >>> np.clip(a, 8, 1) array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) >>> np.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 = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4], 8) array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])