【发布时间】:2021-10-13 13:37:26
【问题描述】:
我有一个目标数组/向量,它是 1 和 0 的组合。它是稀疏的(6%,其余为 0),但当有 1 时,通常连续有 3 个左右。目标数组示例 = [1,1,0,0,0,1,1,1,0,...]。
我还有一个矩阵,其行数与上述目标数组相同。矩阵的每一列也用 1 和 0 填充。对于每一列,我希望在目标数组中有 1 的每个“区域”中只有一个 1。
例如,如果矩阵中的第一列是 [1,1,0,1,0,0,1,1,0,...] 那么这将变为 [1,0,0,1, 0,0,1,0,0,...] 基于前面给出的示例目标数组。
请注意,在目标数组中每个 1 的“区域”内,仅保留该列区域中的第一个 1。另请注意,“区域”之外的列中的 1 不受影响。
如何在 numpy 中有效地执行此操作?非常感谢任何帮助:) 谢谢!
【问题讨论】:
标签: python numpy matrix vector binary