Exemple de comment trouver les indices où les valeurs sont vraies dans une matrice booléenne avec numpy en python:
Créer une matrice booléenne avec numpy
Créons d'abord une matrice booléenne aléatoire avec des valeurs False et True
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)
donne par exemple
[[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]]
Trouver les indices où les valeurs sont vraies
Pour trouver des indices où les valeurs sont vraies, une solution consiste à utiliser la fonction numpy where:
A_true = np.where( A )
print( A_true )
donne
(array([1, 2, 2, 3, 4, 4]), array([1, 1, 2, 0, 1, 4]))
Afficher les indices avec une boucle for
for i in range(A_true[0].shape[0]):
print('i = {}, j = {}'.format(A_true[0][i],A_true[1][i]))
donne
i = 1, j = 1
i = 2, j = 1
i = 2, j = 2
i = 3, j = 0
i = 4, j = 1
i = 4, j = 4