Numpy: hoe u indexen kunt verkrijgen waarvan de waarde waar is


U kunt de volgende methoden gebruiken om de indices te verkrijgen waarvoor een voorwaarde waar is in NumPy:

Methode 1: Haal indexen op waarbij de voorwaarde waar is in de NumPy-array

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

Methode 2: Verkrijg indices waarbij de voorwaarde waar is in de NumPy-matrix

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

Methode 3: Verkrijg indices waarbij de voorwaarde waar is in elke rij van de NumPy-matrix

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

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.

Voorbeeld 1: haal indexen op waarbij de voorwaarde waar is in de NumPy-array

De volgende code laat zien hoe u alle indices kunt ophalen van een NumPy-array waarvan de waarde groter is dan 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),)

Uit het resultaat kunnen we zien dat de waarden op indexposities 6 , 7 en 9 van de originele NumPy-array waarden hebben die groter zijn dan 10.

Voorbeeld 2: Haal indexen op waarbij de voorwaarde waar is in de NumPy-matrix

De volgende code laat zien hoe u alle indices van een NumPy-matrix kunt verkrijgen waarvan de waarde groter is dan 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)

Uit het resultaat kunnen we zien dat de waarden in de volgende indexposities van de matrix waarden hebben die groter zijn dan 10:

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

Voorbeeld 3: Haal indexen op waarbij de voorwaarde waar is in een willekeurige rij van de NumPy-matrix

De volgende code laat zien hoe u alle rij-indices in een NumPy-matrix kunt verkrijgen waarbij de waarde groter is dan 10 in elk element in de rij:

 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),)

Uit het resultaat kunnen we zien dat rijen 0 en 3 minstens één waarde groter dan 10 hebben.

Opmerking : om indices te krijgen waarbij een voorwaarde waar is in een kolom, gebruikt u in plaats daarvan axis=0 .

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in NumPy kunt uitvoeren:

Hoe een NumPy-array met waarden te vullen
Hoe specifieke elementen uit de NumPy-array te verwijderen
Hoe elementen in een NumPy-array te vervangen
Hoe u een specifieke rij uit een NumPy-array kunt halen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert