Seite 1 von 1

Intersection klappt nicht, egal wie:

Verfasst: Mittwoch 22. April 2020, 15:41
von Bayne
Also ich habe 3 Timeseries np.arrays:
calc_ix = eine sehr sehr lange liste von Zeitwerten. Diese enthält teilweise auch werte aus den folgenden beiden:
timeix und timebarrier bilden jeweils paarweise zeitfenster ab. Also VON (timeix wert) BIS (timebarrier). Zu beginn klappt das ganz gut solange sich im Index nichts ändert.

Nun will ich aber eine Intersection finden wo ein paar aus timeix und timebarrier vollständig in calc_ix vorkommt (also nur timeix und timebarrier als paar, zwischenwerte sind egal)
Wertepaare wo nur ein wert auch in calc_ix ist, will ich droppen. (Also aus timeix und timebarrier entfernen).
Anschließend will ich die Indizes der vorhandenen Wertepaare von timeix und timebarrier in calc_ix finden.

Leider klappts nicht:

mein Code

Code: Alles auswählen


valid_pairs = [(a in calc_ix and b in calc_ix) for a,b in zip( timeix ,  timebarrier)    ]

timeix         = timeix[valid_pairs]
timebarrier = timebarrier[valid_pairs]
 
boolean_where_timix_in_calcix            = [(x in t1_timeix)      for x in calc_ix]
boolean_where_timebarrier_in_calcix = [(x in t1_timebarrier) for x in calc_ix]
    
for x,y  in zip(calc_ix[boolean_where_timix_in_calcix ]  , calc_ix[boolean_where_timebarrier_in_calcix ]   ):
    print(a,b) # es sind nicht mehr die gleichen wertepaare, woher ich das weiß? Zum test kommt bei werten wo timeix und timebarrier genau 1Tag auseinander liegen eine Lücke von meheren Tagen auf.
    
    
Habe das gleiche mit np.in1d() versucht, selbes Resultat. Was mache ich falsch?
np.intersection lohnt sich nicht, da ich eine Intersection von 2 Werten als Paar und calc_ix brauche.
alle 3 müssen entweder Listen oder np.arrays bleiben, DataFrames darf ich aus performancegründen nicht verwenden (riesen Datensätze)