2016-10-11 1 views
3

J'ai un jeu de données python xarray avec time,x,y pour ses dimensions et value1 comme variable. J'essaie de calculer la moyenne annuelle de value1 pour chaque paire de coordonnées x,y.Calculer la moyenne annuelle à l'aide de x-arrays

J'ai couru dans cette fonction en lisant les documents:

ds.groupby('time.year').mean() 

Cela semble calculer une seule moyenne annuelle pour tousx,y paires de coordonnées en value1 à chaque tranche de temps donné
plutôt que la moyennes annuelles de individuelx,y paires de coordonnées à chaque tranche de temps donnée.

Alors que l'extrait de code ci-dessus produit la mauvaise sortie, je suis très intéressé par sa forme trop simplifiée. Je voudrais vraiment comprendre le "tour des X-arrays" pour faire la moyenne annuelle pour une paire de coordonnée donnée plutôt que de le pirater moi-même.

Cam quelqu'un me pointe dans la bonne direction? Dois-je le transformer temporairement en objet pandas?

Répondre

3

Pour éviter le défaut de moyenne sur toutes les dimensions, il vous suffit de fournir la dimension que vous voulez en moyenne sur explicitement: ds.groupby('time.year').mean('time')

+0

Merci! Ça marche! Pouvez-vous me donner des conseils sur la façon dont je devrais lire la documentation X-array? Est-ce quelque chose d'omniprésent et quelque chose que quelqu'un utilisant des pandas serait capable de faire aussi bien? (Mon expérience est de 0 connaissance des Pandas, en essayant d'apprendre les X-arrays) – Conic

+0

Je suggère de lire les sections narratives qui vous intéressent (par exemple, http://xarray.pydata.org/fr/stable/groupby.html# appliquer dans ce cas). Cette fonctionnalité est assez différente de celle des pandas, donc c'est quelque chose que nous avons mal expliqué. – shoyer