Подвижная сумма окон на логическом массиве, с шагами. - PullRequest
0 голосов
/ 29 октября 2018

Я борюсь с созданием функции суммы движущихся окон, которая вычисляет количество True значений в данном массиве логических значений my_array, с размером окна n и шагами перехода s.

Например, рассмотрим массив my_array = [True, True, False, False, True, False, True]

сумма движущегося окна размером n = 2 с шагами s = 2 должна дать result = [2, 0, 1, 1], обратите внимание, что последнее окно содержит только одно значение.

Я пытался везти с itertools, но безрезультатно.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Поскольку вы пометили numpy:

my_array = [True, True, False, False, True, False, True]
n = 2
s = 2
result = np.convolve(my_array, np.ones(n, ), mode='valid')[::s]
0 голосов
/ 29 октября 2018

Прямо вперед. Следующий код должен сделать.

def fun(arr, n, s):
    res = []

    for i in range(0, len(arr), s):
        res.append(sum(arr[i:i+n]))

    return res

my_array = [True, True, False, False, True, False, True]
print(fun(my_array, 2, 2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...