Filtern der Zahlenmatrix auf einer Spalte

Ich habe eine Zahlenmatrix wie folgt:

data = np.matrix(
      "5 3 1;"
      "4 4 1;"
      "6 4 1;"
      "8 2 1;"
      "3 5 1;"
      "1 7 1;"
      "5 4 1;"
      "0 1 0;"
      "2 0 0")
# Output:
matrix([[5, 3, 1],
    [4, 4, 1],
    [6, 4, 1],
    [8, 2, 1],
    [3, 5, 1],
    [1, 7, 1],
    [5, 4, 1],
    [0, 1, 0],
    [2, 0, 0]])

Ich möchte die Matrix in der dritten Spalte filtern, deren Wert 1 ist. Das heißt, ich möchte nicht die Zeilen abrufen, deren dritter Wert 0 ist. Kurz gesagt, ich möchte die folgende Matrix extrahieren:

matrix([[5, 3, 1],
    [4, 4, 1],
    [6, 4, 1],
    [8, 2, 1],
    [3, 5, 1],
    [1, 7, 1],
    [5, 4, 1]])

Ich habe ein paar Kombinationen versucht, um es zu filtern. aber keiner von ihnen arbeitete für mich. Der folgende Code schließt beispielsweise die Zeilen mit Null aus, gibt jedoch nur die erste Spalte zurück.

data[data[:,2]>0]
#Output: 
matrix([[5, 4, 6, 8, 3, 1, 5]])

Gibt es eine Möglichkeit, diese Matrix zu filtern, ohne Schleifenanweisungen explizit zu schreiben?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage