Я искал что-то подобное, но ничего не нашел. Также боролся с формулировкой своего вопроса, так что терпите меня здесь. Я работаю с данными, предоставленными в файле Excel, и у меня есть Excel / VBA и python, доступные для использования. Я все еще изучаю и то, и другое, и мне просто нужен пу sh в правильном направлении, чтобы определить, какой метод использовать, чтобы я мог работать над ним и учиться.
Допустим, у меня есть 5 процессов на производстве объект, каждый процесс представлен столбцом. Иногда последующий процесс (столбец 5) получает резервную копию и замедляет последующие процессы (столбец 4, затем 3 и т. Д. c). У меня есть 2D-массив, который указывает на выполнение (0) или резервное копирование (1). Каждый столбец - это отдельный процесс, а каждая строка - временной интервал. Массив будет каждый раз одинакового размера (более 10000 строк, 5 столбцов), но значения меняются. Пример:
MyArray = [0 0 0 0 0
0 1 0 0 0
1 1 0 0 1
1 0 0 0 1
0 0 0 1 1
0 0 1 1 1
0 0 1 1 0
0 1 1 0 0
0 1 0 0 0
0 0 0 0 0]
По сути, когда есть значение 1, я хочу отследить его до самого верхнего правого соседнего 1. Таким образом, для столбца 1 строки 2 и 3 будут отслежены до столбца 2, строки 2. Для столбца 2 строки 8 и 9 будут прослежены до столбца 5, строки 3. В настоящее время у меня есть только оператор if, который смотрит вправо в той же строке, и это лучше, чем ничего, но не отражает каскадный эффект. вы получаете, когда что-то выполняет резервное копирование нескольких восходящих процессов.
Я мог бы найти способ сделать это, зациклив поиск для поиска в столбце, пока не найдет ноль, тогда, если следующее значение столбца будет 1 , поиск, пока не найдет ноль, повторить. Но это кажется действительно неэффективным, и я чувствую, что должен быть лучший способ сделать это. Любые мысли или комментарии были бы очень полезны. Спасибо.