找到值为true的布尔数组的索引

dai*_*yue 2 python boolean numpy python-3.x

我想知道什么是找到Boolean数组的所有索引的最佳方法,其中值是True.例如,一组bool值,

import numpy as np
A = np.array([True, False, True, False, True])
true_list = A[A == True].index.tolist()
Run Code Online (Sandbox Code Playgroud)

Joh*_*nck 7

这样做很容易:

np.where(A)
Run Code Online (Sandbox Code Playgroud)

要么:

A.nonzero()
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在上述两种情况下,结果都是 numpy 数组的元组,A 的每个维度一个。在这种情况下,结果将是:`(array([0, 2, 4]),)`。你必须做 `np.where(A)[0]` 来得到 `array([0, 2, 4])` (3认同)