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.]]
Beachten Sie, dass eine der Zeilen am Ende einen Wert von Null hat. Ich möchte jede Zeile löschen, die eine Null enthält, während jede Zeile, die Werte ungleich Null enthält, in allen Zellen beibehalten wird.
Das Array hat jedoch jedes Mal, wenn es gefüllt wird, eine unterschiedliche Anzahl von Zeilen, und die Nullen befinden sich jedes Mal in unterschiedlichen Zeilen.
Ich erhalte die Anzahl der Nicht-Null-Elemente in jeder Zeile mit der folgenden Codezeile:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
NumNonzeroElementsInRows
Enthält für das obige Array : [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)
Aus irgendeinem Grund scheint dieser Code nichts zu tun, obwohl viele Druckbefehle darauf hinweisen, dass alle Variablen im Vorfeld des Codes korrekt ausgefüllt zu sein scheinen.
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 muss, um dies zu erreichen?
numpy.delete(x, index)
nicht funktionierte.