Mam tablicę, która może wyglądać następująco:
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
Zwróć uwagę, że jeden z wierszy ma na końcu wartość zero. Chcę usunąć każdy wiersz zawierający zero, zachowując wiersz zawierający wartości niezerowe we wszystkich komórkach.
Ale tablica będzie miała różną liczbę wierszy za każdym razem, gdy zostanie zapełniona, a zera za każdym razem będą znajdować się w różnych wierszach.
Otrzymuję liczbę niezerowych elementów w każdym wierszu z następującym wierszem kodu:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Dla powyższej tablicy NumNonzeroElementsInRows
zawiera: [5 4]
Pięć oznacza, że wszystkie możliwe wartości w wierszu 0 są różne od zera, a cztery wskazują, że jedna z możliwych wartości w wierszu 1 to zero.
Dlatego próbuję użyć następujących wierszy kodu, aby znaleźć i usunąć wiersze zawierające wartości zerowe.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
Ale z jakiegoś powodu ten kod nie wydaje się nic robić, nawet jeśli wykonanie wielu poleceń drukowania wskazuje, że wszystkie zmienne wydają się prawidłowo zapełniać, prowadząc do kodu.
Musi istnieć prosty sposób na „usunięcie dowolnego wiersza zawierającego wartość zerową”.
Czy ktoś może mi pokazać, jaki kod napisać, aby to osiągnąć?
numpy.delete(x, index)
nie działa.