У меня есть массив, который может выглядеть так:
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)
Но по какой-то причине этот код, похоже, ничего не делает, хотя выполнение большого количества команд печати указывает на то, что все переменные, похоже, правильно заполняются, доводя до кода.
Должен быть простой способ просто "удалить любую строку, содержащую нулевое значение".
Может ли кто-нибудь показать мне, какой код написать, чтобы выполнить это?