numpy.clip — NumPy v2.3.dev0 Manual (original) (raw)

numpy.clip(a, a_min=, a_max=, out=None, *, min=, max=, **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 both a_min and a_max are None, the elements of the returned array stay the same. Both are broadcasted against a.

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 and a_maxarguments. Either a_min and a_max or min and maxcan be passed at the same time. Default: None.

New in version 2.1.0.

**kwargs

For other keyword-only arguments, see theufunc docs.

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.

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