Comment utiliser numpy avec "Aucune" valeur en Python?
Je voudrais calculer la moyenne d'un tableau en Python sous cette forme:
Matrice = [1, 2, None]
J'aimerais juste avoir mon None
valeur ignorée par le numpy.mean
calcul mais je ne peux pas comprendre comment le faire.
- +1: cette question peut être particulièrement pertinent pour les tableaux qui sont importées à partir d'une base de données, où les valeurs peuvent parfois être NULL.
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour masqué tableaux. Voici un exemple.
Malheureusement, masqué tableaux ne sont pas pris en charge dans numpy, de sorte que vous avez à regarder autour pour voir ce qui peut et ne peut pas être fait avec eux.
filled
. qui a apporté l'masqué tableau à un tableau normal, rempli avec une valeur que je reconnais comme non valide (NaN, -9999, quels que soient vos utilisateurs ont besoin).Vous pouvez utiliser scipy pour que:
a = [1,2,None]
et puisst.nanmean(a)
résultats dans un TypeError.n'avez pas utilisé numpy, mais dans les standards de python, vous pouvez filtrer
None
en utilisant la liste des compréhensionsou de la fonction de filtre
et de la moyenne du résultat d'ignorer la
None
x != None
est généralement écritx is not None
(PEP 8: "les Comparaisons pour les singletons comme Aucun devrait toujours être fait avec" est " ou "n'est pas", ne jamais les opérateurs d'égalité.")Vous pourriez également être en mesure de bidouille avec des valeurs comme NaN ou Inf.
En fait, il pourrait même ne pas être une bidouille. Wikipédia dit:
En fait, cela ne fonctionne pas pour la moyenne() de la fonction, alors tant pis. 🙂
mean(a[~isnan(a)])
explicitement le choix de tous les non-valeurs NaN œuvres.Vous pouvez également utiliser un filtre passe Aucun, il va de filtre non de Véritables objets, aussi 0, 😀
Donc, l'utiliser lorsque vous n'avez pas besoin de 0 trop.
np.moyenne(Matrice[Matrice != Aucun])