Цикл и фильтрация массива для отмены последующих связанных «событий» - PullRequest
0 голосов
/ 15 марта 2019

У меня есть массив Numpy, который выглядит как пример ниже.

  • Различные столбцы представляют разные события.
  • 1 и 0 показывают, происходит ли каждое событие. Чтобы быть явным, 1 в столбце A означает, что происходит событие A.
  • Столбцы, перемещающиеся слева направо, показывают прогрессию во времени, поэтому сначала происходит A, затем B, затем C и т. Д.
  • Есть 20 столбцов и около 1 млн. Строк.
A  B  C  D  ...
1  1  1  1
1  1  1  0
1  1  0  0
1  0  0  0
...

Однако события связаны между собой. Скажем, события А и С связаны между собой. Если A не происходит, то C не может. Таким образом, я пытаюсь сделать так, как я понимаю:

  • Для каждого столбца:
  • Выберите строки, где A = 0 и C = 1
  • Установить элементы в C в этом подмножестве строк равными 0

Для ясности, существуют ситуации, когда существует более одного связанного события. Например, A, C, F и J могут быть связаны. Кроме того, столбцы в массиве NumPy не названы - я включил заголовки A, B, C и C для простоты объяснения.

Я делал это вручную через:

df[(df[:,0] == 0) & (df[:,2] == 1), 2]

Как я могу сохранить события, чтобы сделать цикл по связанным событиям, и использовать это для обновления массива numpy?

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