numpy.trim_zeros#

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

沿一个维度移除在所有其他维度上都为零的值。

参数:
filtarray_like

输入数组。

trim{“fb”, “f”, “b”}, optional

一个字符串,其中“f”表示从开头修剪,“b”表示从末尾修剪。默认情况下,两边的零都会被修剪。开头和末尾指的是一个维度的边缘,“开头”指的是索引为0的一侧,“末尾”指的是最高索引(或索引 -1)的一侧。

axisint or sequence, optional

如果为 None,则裁剪 filt,以返回仍然包含所有非零值的最小边界框。如果指定了轴,则 filt 将仅在该维度上根据 trim 指定的侧面进行切片。剩余区域将是仍然包含所有非零值的最小区域。

版本 2.2.0 中新增。

返回:
trimmedndarray or sequence

修剪输入的 结果。维度数量和输入数据类型得到保留。

备注

对于全零数组,首先修剪第一个轴。

示例

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