numpy.trim_zeros#

numpy.trim_zeros(filt, trim='fb', ось=None)[источник]#

Удалить значения вдоль измерения, которые равны нулю вдоль всех других.

Параметры:
filtarray_like

Входной массив.

trim{“fb”, “f”, “b”}, опционально

Строка с 'f', обозначающая обрезку спереди, и 'b' — обрезку сзади. По умолчанию нули обрезаются с обеих сторон. Передняя и задняя части относятся к краям измерения, где «передняя» — сторона с наименьшим индексом 0, а «задняя» — с наибольшим индексом (или индексом -1).

осьint или sequence, optional

Если None, filt обрезается так, чтобы возвращался наименьший ограничивающий прямоугольник, который всё ещё содержит все ненулевые значения. Если указана ось, filt будет разрезан в этом измерении только на сторонах, указанных trimОставшаяся область будет наименьшей, которая всё ещё содержит все ненулевые значения.

Новое в версии 2.2.0.

Возвращает:
обрезанныйndarray или последовательность

Результат обрезки входных данных. Количество измерений и тип входных данных сохраняются.

Примечания

Для полностью нулевых массивов сначала обрезается первая ось.

Примеры

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

Поддерживаются несколько измерений.

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

Входной тип данных сохраняется, список/кортеж на входе означает список/кортеж на выходе.

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