изменение размера списка разных размеров до заданного размера c с помощью биннинга - PullRequest
0 голосов
/ 27 марта 2020

У меня есть несколько списков с плавающей точкой, как показано ниже:

a = [1.1, 1.2, 1.3, 1.4, 1.5]
b = [2.1, 2.2, 2.3]
c = [3.1, 3.2]
d = [4.1, 4.2, 4.3, 4.4, 4.5, 4.6]

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

a = [(1.1+1.2+1.3)/3, (1.2+1.3+1.4)/3, (1.3+1.4+1.5)/3] 
b = [2.1, 2.2, 2.3]
c = [(3.1+3.2)/2, 3.1+3.2)/2, 3.1+3.2)/2]
d = [(4.1+4.2)/2, (4.3+4.4)/2, (4.5+4.6)/2]

Здесь размер каждого исходного списка может быть любого размера, меньшего или большего, чем требуемый постоянный размер (который здесь равен 3).

Я пробовал с itertools, где vals это список, а bin постоянный размер bin. Так или иначе, это не работает для списков, которые меньше, чем желаемый постоянный размер.

window_avg = [ np.mean(vals[i:i+bin]) for i in range(0, len(vals), 1)
                if i+bin <= len(vals) ]
...