J'ai un tableau qui pourrait ressembler à ceci :
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
Remarquez que l'une des lignes a une valeur nulle à la fin. Je souhaite supprimer toute ligne contenant un zéro, tout en conservant toute ligne contenant des valeurs non nulles dans toutes les cellules.
Mais le tableau aura un nombre de lignes différent à chaque fois qu'il sera rempli, et les zéros seront situés dans des lignes différentes à chaque fois.
J'obtiens le nombre d'éléments non nuls dans chaque ligne avec la ligne de code suivante :
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Pour le tableau ci-dessus, NumNonzeroElementsInRows
contient : [5 4]
Le chiffre cinq indique que toutes les valeurs possibles de la ligne 0 sont non nulles, tandis que le chiffre quatre indique que l'une des valeurs possibles de la ligne 1 est nulle.
Par conséquent, j'essaie d'utiliser les lignes de code suivantes pour trouver et supprimer les lignes qui contiennent des valeurs nulles.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
Mais pour une raison quelconque, ce code ne semble rien faire, même si l'exécution de nombreuses commandes d'impression indique que toutes les variables semblent se remplir correctement jusqu'au code.
Il doit y avoir un moyen simple de "supprimer toute ligne contenant une valeur nulle".
Quelqu'un peut-il m'indiquer le code à écrire pour y parvenir ?