Числовой эквивалент trim_zeros для других значений - PullRequest
0 голосов
/ 20 июня 2019

Я хочу обрезать одномерный массив, удалив все элементы слева и справа, которые имеют определенное значение (например, 255).Кажется немного глупым делать всю дополнительную работу

np.trim_zeros (arr - 255) + 255

Существует ли эквивалентная функция trim, которая позволяет вам указывать значения, которыеудалить триггер?Или, может быть, я могу свернуть свое собственное, глядя на внутренние органы trim_zeros?

1 Ответ

0 голосов
/ 20 июня 2019

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

Возможно, было бы неплохо добавить это в кодовую базу кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...