dpnp.trim_zeros

dpnp.trim_zeros(filt, trim='fb', axis=None)[source]

Remove values along a dimension which are zero along all other.

For full documentation refer to numpy.trim_zeros.

Parameters:
  • filt ({dpnp.ndarray, usm_ndarray}) -- Input array.

  • trim ({"fb", "f", "b"}, optional) -- A string with "f" representing trim from front and "b" to trim from back. By default, zeros are trimmed on both sides. Front and back refer to the edges of a dimension, with "front" referring to the side with the lowest index 0, and "back" referring to the highest index (or index -1). Default: "fb".

  • axis ({None, int}, optional) -- If None, filt is cropped such, that the smallest bounding box is returned that still contains all values which are not zero. If an axis is specified, filt will be sliced in that dimension only on the sides specified by trim. The remaining area will be the smallest that still contains all values which are not zero. Default: None.

Returns:

out -- The result of trimming the input. The number of dimensions and the input data type are preserved.

Return type:

dpnp.ndarray

Notes

For all-zero arrays, the first axis is trimmed first.

Examples

>>> import dpnp as np
>>> a = np.array((0, 0, 0, 1, 2, 3, 0, 2, 1, 0))
>>> np.trim_zeros(a)
array([1, 2, 3, 0, 2, 1])
>>> np.trim_zeros(a, trim='b')
array([0, 0, 0, 1, 2, 3, 0, 2, 1])

Multiple dimensions are supported:

>>> b = np.array([[0, 0, 2, 3, 0, 0],
...               [0, 1, 0, 3, 0, 0],
...               [0, 0, 0, 0, 0, 0]])
>>> np.trim_zeros(b)
array([[0, 2, 3],
       [1, 0, 3]])
>>> np.trim_zeros(b, axis=-1)
array([[0, 2, 3],
       [1, 0, 3],
       [0, 0, 0]])