NumPy 2D矩阵:返回真实的行索引,其中column为true

时间:2019-07-09 15:37:50

标签: python numpy

我在NumPy中有两个数组:

test('objects', () => {
    expect(doc2).toEqual(
        expect.objectContaining(doc1)
    );   
  });

我需要知道a1中第1列和第2列(在a2中给出)都等于1的行的索引。

在上面的示例中,这只会是索引为3的最后一行。其他列是否等于1都没有关系。

有人可以帮助我做到这一点而无需大量循环吗?

1 个答案:

答案 0 :(得分:2)

使用简单索引和np.all将为您提供所有元素均等于1的行:

np.all(a1[:, a2], axis=1)

这为您提供了符合此条件的行掩码。像这样:

array([False, False, False,  True])

然后在@ rahlf23注释之后,您可以使用np.where查找符合以下条件的索引:

np.where(np.all(a1[:, a2], axis=1))[0]

输出

array([3])