Zeilen in numpy-Array löschen

Ich habe ein Array, das so aussehen könnte:

ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875, 
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]

Bitte beachten Sie, dass eine der Zeilen am Ende den Wert Null hat. Ich möchte jede Zeile löschen, die eine Null enthält, während alle Zeilen, die Werte ungleich Null enthalten, in allen Zellen beibehalten werden.

Aber das Array weist bei jedem Auffüllen eine andere Anzahl von Zeilen auf, und die Nullen befinden sich jedes Mal in verschiedenen Zeilen.

Ich erhalte die Anzahl der Elemente ungleich Null in jeder Zeile mit der folgenden Codezeile:

NumNonzeroElementsInRows    = (ANOVAInputMatrixValuesArray != 0).sum(1)

Für das Array oben,NumNonzeroElementsInRows enthält: [5 4]

Die fünf geben an, dass alle möglichen Werte in Zeile 0 ungleich Null sind, während die vier angeben, dass einer der möglichen Werte in Zeile 1 eine Null ist.

Daher versuche ich, die folgenden Codezeilen zu verwenden, um Zeilen zu finden und zu löschen, die Nullwerte enthalten.

for q in range(len(NumNonzeroElementsInRows)):
    if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
        p.delete(ANOVAInputMatrixValuesArray, q, axis=0)

Aber aus irgendeinem Grund scheint dieser Code nichts zu bewirken, obwohl das Ausführen vieler Druckbefehle darauf hindeutet, dass alle Variablen korrekt gefüllt zu sein scheinen, um zum Code zu führen.

Es muss eine einfache Möglichkeit geben, einfach "jede Zeile zu löschen, die einen Nullwert enthält".

Kann mir jemand zeigen, welchen Code ich schreiben soll, um dies zu erreichen?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage