numpy.trim_zeros#
- numpy.trim_zeros(filt, trim='fb', axis=None)[source]#
删除沿某个维度上所有其他维度都为零的值。
- 参数:
- filtarray_like
输入数组。
- trim{"fb", "f", "b"}, 可选
一个字符串,其中 'f' 表示从前面修剪,'b' 表示从后面修剪。默认情况下,两侧都修剪零值。“前面”指索引 0 的一侧,“后面”指最高索引(或索引 -1)的一侧。
- axisint 或序列,可选
如果为 None,则裁剪 filt,使其返回仍然包含所有非零值的最小边界框。如果指定了轴,则 filt 将仅在 trim 指定的侧面对该维度进行切片。其余区域将是仍然包含所有非零值的最小区域。
- 返回值:
- trimmedndarray 或序列
修剪输入的结果。维度数和输入数据类型保持不变。
备注
对于全零数组,首先修剪第一个轴。
示例
>>> 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]