Example of how to find indices where values are true in a boolean matrix with numpy in python:
Table of contents
Create a boolean matrix with numpy
Let's first create a random boolean matrix with False and True values
import numpy as np
A = np.full((5, 5), False)
n = 6
index = np.random.choice(A.size, n, replace=False)
A.ravel()[index] = True
print(A)
returns for example
[[False False False False False]
[False True False False False]
[False True True False False]
[ True False False False False]
[False True False False True]]
Find indexes where values are true
To find indices where values are true, a solution is to use the numpy function where:
A_true = np.where( A )
print( A_true )
returns
(array([1, 2, 2, 3, 4, 4]), array([1, 1, 2, 0, 1, 4]))
Create a loop
for i in range(A_true[0].shape[0]):
print('i = {}, j = {}'.format(A_true[0][i],A_true[1][i]))
returns
i = 1, j = 1
i = 2, j = 1
i = 2, j = 2
i = 3, j = 0
i = 4, j = 1
i = 4, j = 4