numpy.trim_zeros#

numpy.trim_zeros(filt, trim='fb', axis=None)[源代码]#

移除沿着某个维度,沿着其他所有维度都是零的值.

参数:
filtarray_like

输入数组.

trim{“fb”, “f”, “b”}, 可选

一个字符串, ‘f’ 表示从前面修剪, ‘b’ 表示从后面修剪. 默认情况下,在两侧都修剪零. 前面和后面是指尺寸的边缘,其中 “前面” 是指索引最低的边 0,而 “后面” 是指索引最高的边(或索引 -1).

axisint 或 序列, 可选

如果为 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]])

输入数据类型被保留,输入 list/tuple 意味着输出 list/tuple.

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