У меня есть массив 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?