Numpy: so erhalten sie indizes, deren wert wahr ist


Sie können die folgenden Methoden verwenden, um die Indizes abzurufen, für die eine Bedingung in NumPy wahr ist:

Methode 1: Rufen Sie Indizes im NumPy-Array ab, bei denen die Bedingung wahr ist

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

Methode 2: Indizes abrufen, bei denen die Bedingung in der NumPy-Matrix wahr ist

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

Methode 3: Rufen Sie Indizes ab, bei denen die Bedingung in einer beliebigen Zeile der NumPy-Matrix wahr ist

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

Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.

Beispiel 1: Indizes im NumPy-Array abrufen, bei denen die Bedingung wahr ist

Der folgende Code zeigt, wie man alle Indizes eines NumPy-Arrays erhält, dessen Wert größer als 10 ist:

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

Aus dem Ergebnis können wir ersehen, dass die Werte an den Indexpositionen 6 , 7 und 9 des ursprünglichen NumPy-Arrays Werte größer als 10 haben.

Beispiel 2: Indizes abrufen, bei denen die Bedingung in der NumPy-Matrix wahr ist

Der folgende Code zeigt, wie man alle Indizes einer NumPy-Matrix erhält, deren Wert größer als 10 ist:

 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)

Aus dem Ergebnis können wir ersehen, dass die Werte an den folgenden Indexpositionen der Matrix Werte größer als 10 haben:

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

Beispiel 3: Rufen Sie Indizes ab, bei denen die Bedingung in einer beliebigen Zeile der NumPy-Matrix wahr ist

Der folgende Code zeigt, wie man alle Zeilenindizes in einer NumPy-Matrix erhält, wenn der Wert in einem beliebigen Element in der Zeile größer als 10 ist:

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

Aus dem Ergebnis können wir erkennen, dass die Zeilen 0 und 3 mindestens einen Wert größer als 10 haben.

Hinweis : Um Indizes zu erhalten, bei denen eine Bedingung in einer Spalte wahr ist, verwenden Sie stattdessen axis=0 .

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in NumPy ausführen:

So füllen Sie ein NumPy-Array mit Werten
So entfernen Sie bestimmte Elemente aus dem NumPy-Array
So ersetzen Sie Elemente in einem NumPy-Array
So erhalten Sie eine bestimmte Zeile aus einem NumPy-Array

Einen Kommentar hinzufügen

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