У меня есть массив, который может выглядеть следующим образом:
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
что одна из строк имеет нулевое значение в конце. Я хочу удалить любую строку, содержащую ноль, сохранив при этом любую строку, содержащую ненулевые значения во всех ячейках.
Но массив будет иметь разное количество строк каждый раз, когда он будет заполнен, а нули будут располагаться в каждый раз в разные строки.
Я получаю количество ненулевых элементов в каждой строке с помощью следующей строки кода:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Для массива выше NumNonzeroElementsInRows
содержит: [5 4]
] Пять указывает, что все возможные значения в строке 0 отличны от нуля, а четыре указывает, что одно из возможных значений в строке 1 равно нулю.
Поэтому я пытаюсь использовать следующие строки кода для поиска и удаления строк, содержащих нулевые значения.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
Но по какой-то причине этот код, похоже, ничего не делает, хотя и выполняет множество команд печати указывает на то, что все переменные, кажется, заполняются правильно, вплоть до кода.
Должен быть какой-то простой способ просто «удалить любую строку, содержащую нулевое значение».
Может ли кто-нибудь показать мне, какой код написать для этого?