Eu tenho uma matriz que pode ser parecida com esta:
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
Observe que uma das linhas tem valor zero no final. Desejo excluir qualquer linha que contenha um zero, mantendo qualquer linha que contenha valores diferentes de zero em todas as células.
Mas a matriz terá diferentes números de linhas sempre que for preenchida e os zeros estarão localizados em diferentes linhas a cada vez.
Eu obtenho o número de elementos diferentes de zero em cada linha com a seguinte linha de código:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Para a matriz acima, NumNonzeroElementsInRows
contém: [5 4]
O cinco indica que todos os valores possíveis na linha 0 são diferentes de zero, enquanto o quatro indica que um dos valores possíveis na linha 1 é zero.
Portanto, estou tentando usar as seguintes linhas de código para localizar e excluir linhas que contêm valores zero.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
Mas, por algum motivo, esse código não parece fazer nada, embora muitos comandos de impressão indiquem que todas as variáveis parecem estar sendo preenchidas corretamente, levando ao código.
Deve haver uma maneira fácil de simplesmente "excluir qualquer linha que contenha um valor zero".
Alguém pode me mostrar qual código escrever para fazer isso?
numpy.delete(x, index)
não funcionava.