Настройте массив numpy на основе доступных диапазонов в другом массиве. - PullRequest
0 голосов
/ 08 марта 2020

У меня есть массив numpy (а), который представляет время начала нескольких действий. У меня также есть другой массив numpy (b), в котором действия не могут выполняться. Как найти массив (c), который корректирует (a) на основе (b) и его годового умножения (365 * 1) + b, (365 * 2) + b, (365 * 3) + b ... ( 365 * п) + B?

a = np.array([0,7,76,107,142,342,669,610,634,669,669,669,669,669,669,357,669,669,669,669,669,669,669,669,669,720,757,757,757,757,757,757,757,757,757,,757,757,757,757])

b= [0, 1,2,3,4,5,6,7,81,82,83,84,85,101,102,103,104,105,279,288,296,297,298,345,346,347,348,349,350]

Например, если мы возьмем первое действие в (a), которое начинается с 0, оно должно быть скорректировано на основе (b), чтобы начать с 8, так как период 0-7 недоступен. Это автоматически сместит второе действие, которое начинается в 7, чтобы начаться в 15 = (7 +8). Третье мероприятие, которое начинается в 76, должно начинаться в 84, но 84 - это день, когда оно не может работать. Таким образом, он должен работать частично между 85 до 101, а другая часть этого действия должна продолжаться после 105, поскольку диапазон 101 - 105 недоступен. Результирующий массив (c) должен отражать это разделение, регулируя время начала четвертого действия в массиве (a), которое начинается с 107.

Таким образом, в принципе, массив (c) должен иметь тот же размер, что и у массива (а), и первые четыре значения должны быть:

c=[8,15,86,121,...

Спасибо за вашу помощь.

Примечание: массив (а) не отсортирован, и порядок важен.

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