Среднее значение вокруг перекрывающихся значений в двух списках в Python - PullRequest
0 голосов
/ 05 мая 2018

У меня есть 4 списка, состоящих из данных времени в UNIX и соответствующей скорости. Один набор больше другого. Я хочу найти среднюю скорость нескольких значений до и после найденного значения большего списка на каждой соответствующей временной отметке меньшего списка.

t1 = [2, 5, 7]

t2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

v1 = [0.5, 1, 0.7]

v2 = [0.1, 0.5, 1, 1.3, 1.4, 1.8, 0.9, 2, 1.5, 1.2]

Так что, если t1 и t2 совпадают, я хочу получить среднюю скорость значений x до и после этого времени.

скажем, х = 1 В этом случае он должен дать мне среднее значение (0,1, 0,5, 1) (1,3, 1,4, 1,8) и (1,8, 0,9, 2)

1 Ответ

0 голосов
/ 05 мая 2018

Попробуйте

import numpy as np

for num in t1: #for each value in t1
    try:
        match_index=t2.index(num) #check if match exists
    except:
        match_index=-1 #otherwise set it to -1

    if(match_index!=-1): #if match was found
        my_list=[]       #make an empty list 
        if(match_index==0): #if index was 0, then nearby 3 elements can't be found, only 2 can
            my_list=v2[:match_index+2]
        elif(match_index==len(v2)-1): #similarly if index was for last element
            my_list=v2[match_index-1:]
        else:
            my_list=v2[match_index-1:match_index+2] #normal case slice the required values
        print("average of :",my_list," is ",np.average(my_list))

#average of : [0.1, 0.5, 1]  is  0.5333333333333333
#average of : [1.3, 1.4, 1.8]  is  1.5
#average of : [1.8, 0.9, 2]  is  1.5666666666666667
...