Comment trouver les indices où les valeurs sont vraies dans une matrice booléenne avec numpy en python ?

Published: 01 mars 2021

Tags: Python; Numpy;

DMCA.com Protection Status

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

Références