Numpy: come ottenere indici il cui valore è vero


È possibile utilizzare i seguenti metodi per ottenere gli indici per i quali una condizione è vera in NumPy:

Metodo 1: ottieni gli indici in cui la condizione è vera nell’array NumPy

 #get indices of values greater than 10
n.p. asarray (my_array> 10 ). nonzero ()

Metodo 2: ottieni gli indici in cui la condizione è vera nella matrice NumPy

 #get indices of values greater than 10
n.p. transpose ((my_matrix>10) .nonzero ())

Metodo 3: ottieni gli indici in cui la condizione è vera in qualsiasi riga della matrice NumPy

 #get indices of rows where any value is greater than 10
n.p. asarray ( np.any (my_matrix> 10 ,axis= 1 )). nonzero ()

Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.

Esempio 1: ottieni gli indici in cui la condizione è vera nell’array NumPy

Il codice seguente mostra come ottenere tutti gli indici di un array NumPy il cui valore è maggiore di 10:

 import numpy as np

#create NumPy array
my_array = np. array ([2, 2, 4, 5, 7, 9, 11, 12, 3, 19])

#get index of values greater than 10
n.p. asarray (my_array> 10 ). nonzero ()

(array([6, 7, 9], dtype=int32),)

Dal risultato, possiamo vedere che i valori nelle posizioni dell’indice 6 , 7 e 9 dell’array NumPy originale hanno valori maggiori di 10.

Esempio 2: ottieni indici in cui la condizione è vera nella matrice NumPy

Il codice seguente mostra come ottenere tutti gli indici di una matrice NumPy il cui valore è maggiore di 10:

 import numpy as np

#create NumPy matrix
my_matrix = np. array ([[2, 5, 9, 12],
                     [6, 7, 8, 8],
                     [2, 5, 7, 8],
                     [4, 1, 15, 11]])

#get index of values greater than 10
n.p. transpose ((my_matrix> 10 ) .nonzero ())

array([[0, 3],
       [3, 2],
       [3, 3]], dtype=int32)

Dal risultato, possiamo vedere che i valori nelle seguenti posizioni dell’indice della matrice hanno valori maggiori di 10:

  • [0, 3]
  • [3, 2]
  • [3, 3]

Esempio 3: ottieni indici in cui la condizione è vera in qualsiasi riga della matrice NumPy

Il codice seguente mostra come ottenere tutti gli indici di riga in una matrice NumPy in cui il valore è maggiore di 10 in qualsiasi elemento della riga:

 import numpy as np

#create NumPy matrix
my_matrix = np. array ([[2, 5, 9, 12],
                     [6, 7, 8, 8],
                     [2, 5, 7, 8],
                     [4, 1, 15, 11]])

#get index of rows where any value is greater than 10
n.p. asarray ( np.any (my_matrix> 10 , axis= 1 )). nonzero ()

(array([0, 3], dtype=int32),)

Dal risultato possiamo vedere che le righe 0 e 3 hanno almeno un valore maggiore di 10.

Nota : per ottenere indici in cui una condizione è vera in una colonna, utilizzare invece axis=0 .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in NumPy:

Come riempire un array NumPy con valori
Come rimuovere elementi specifici dall’array NumPy
Come sostituire gli elementi in un array NumPy
Come ottenere una riga specifica da un array NumPy

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *