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