通过numpy数组循环和过滤,以取消后续的相关“事件”

时间:2019-03-15 19:03:21

标签: python arrays numpy

我有一个类似下面示例的numpy数组。

  • 不同的列代表不同的事件。
  • 1和0代表每个事件是否发生。明确地说,列A中的1表示事件A发生。
  • 从左向右移动的列显示了时间的变化,因此,首先出现A,然后出现B,然后出现C,依此类推。
  • 有20列和大约1M行。
A  B  C  D  ...
1  1  1  1
1  1  1  0
1  1  0  0
1  0  0  0
...

但是,这些事件是相关的。假设事件A和C相关。如果没有发生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数组?

0 个答案:

没有答案