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.]]
Notez que l'une des lignes a une valeur zéro à 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 est 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 cinq indique que toutes les valeurs possibles de la ligne 0 sont différentes de zéro, tandis que le quatre indique que l'une des valeurs possibles de la ligne 1 est un zéro.
Par conséquent, j'essaie d'utiliser les lignes de code suivantes pour trouver et supprimer des 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 faire beaucoup de commandes d'impression indique que toutes les variables semblent se remplir correctement menant au code.
Il doit y avoir un moyen simple de simplement «supprimer toute ligne contenant une valeur nulle».
Quelqu'un peut-il me montrer quel code écrire pour accomplir cela?
numpy.delete(x, index)
ne fonctionnait pas.