【发布时间】:2020-06-10 04:44:08
【问题描述】:
我有一个像这样的二维 numpy 数组,它只有 0、1 个值。
a = np.array([[1, 0, 1, 0], # Indexes 0 and 2 == 1
[0, 1, 1, 0], # Indexes 1 and 2 == 1
[0, 1, 0, 1], # Indexes 1 and 3 == 1
[0, 1, 1, 1]]) # Indexes 1, 2, and 3 == 1
我想要做的是获取传递的一对列索引都等于1的每一行的索引。
例如,如果执行此操作的函数是get_rows,get_rows(a, [1, 3]),则应返回 [2, 3],因为索引 2 和 3 处的行的列索引 1 和 3 等于 1。同样,@987654324 @ 应该返回 [1, 3]。
我知道如何在 Pandas 数据框中执行此操作,但我想坚持使用纯 numpy 进行此操作。我尝试以某种形式使用np.where,例如
np.where( ((a[i1 - 1] == 1) & (a[i2 - 1] == 1) ))
但这似乎并没有给我我想要的东西,并且不适用于不同数量的传递索引。
【问题讨论】: