其他值的trim_zeros的Numpy等效项

时间:2019-06-19 21:21:03

标签: numpy

我想通过从左右移除所有具有特定值(例如255)的元素来修剪一维numpy数组。要做所有额外的工作似乎有点傻

np.trim_zeros(arr-255)+ 255

是否有等效的trim函数可让您指定触发删除的值?还是可以看看trim_zeros的内部知识来自己动手?

1 个答案:

答案 0 :(得分:0)

@hpaulj指出trim_zeros的代码是用python编写的,很容易修改。因此,以下代码可以正常运行,并且应与内置trim_zeros一样快。

def trim(filt, trim_value=0., trim='fb'):
    """
    Copied from np.trim_zeros, but allows the trim value to be specified
    """
    first = 0
    trim = trim.upper()
    if 'F' in trim:
        for i in filt:
            if i != trim_value:
                break
            else:
                first = first + 1
    last = len(filt)
    if 'B' in trim:
        for i in filt[::-1]:
            if i != trim_value:
                break
            else:
                last = last - 1
    return filt[first:last]

我想将其添加到numpy代码库中可能会很好。