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

2024-04-25 21:05:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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数组


Tags: numpy元素标题示例df进程方式时间