2016-10-07 4 views
-1

J'ai deux jeux de données x-array.Intersection de deux jeux de données x-array

  • On est appelé foo et a les dimensions x,y,time avec des variables a,b,c,d.
  • La seconde est appelée bar et est le résultat d'une analyse de séries chronologiques sur foo.
    • cela n'a dimensions x,y et une seule variable e où toutes les valeurs de e se situent entre 0 et 1.

Je souhaite utiliser bar pour filtrer ou limiter la quantité de données x,y,time-entrées en cours de traitement dans foo. Seuls x,y,time avec e > 0.8 à chaque x.y doivent être considérés ici.

Je suis encore relativement nouveau pour les tableaux X. Ma question est de savoir si une mentalité de «mise en opération» d'une manière ou d'une autre, en croisant ou en croisant deux jeux de données xarray et en s'attendant à un ensemble de données plus petit, est une façon réaliste de raisonner sur les X-Arrays?

Voici ce que j'ai jusqu'à présent.

foo = loadDataset()
bar = perform_timeseries_analysis()
filtered_bar = bar > 0.8
#TODO: Use bar to reduce the size of foo

+1

vous devez nous fournir une entrée d'exemple et un ouput souhaité. aussi vous devriez nous montrer ce que vous avez essayé. [Voir ceci] (http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples) –

+0

Le problème avec ce que j'ai essayé est que j'ai atteint une impasse limitée par ma compréhension de X-Arrays. Ce que j'ai encouragé les gens à courir avec mon processus de pensée à court terme pour résoudre ces problèmes. J'ai essayé d'utiliser des filtres de notation .where() et bracket qui me donnent des valeurs vraies ou flas – Conic

Répondre

0

Voici ce qui a fini par travailler pour moi

import numpy as np 
from example import * 

foo = loadDataset() #returns dataset 
bar = perform_timeseries_analysis(foo) # returns dataset 
mutable_temp = bar.timeseries.values 
mutable_temp[mutable_temp < 0.8] = np.nan 
mutable_temp[np.isfinite(mutable_temp)] = 0 
mask = mutable_temp.astype(np.float32) 
foo = foo + mask