Skip to main content
`Ctrl`+`K`

# numpy.trim_zeros

numpy.trim_zeros(filt, trim='fb', axis=None)

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

  Parameters:
    filt array_like

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

    axis int or sequence, 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 wich are not zero.

      New in version 2.2.0.

  Returns:
    trimmed ndarray or sequence

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

  Notes

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

  Examples

      >>> import numpy 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, ..., 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]])

  The input data type is preserved, list/tuple in means list/tuple out.

      >>> np.trim_zeros([0, 1, 2, 0])
      [1, 2]