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