Интерполяция периодических данных в Python - PullRequest
3 голосов
/ 28 декабря 2011

У меня есть модуль, который собирает статистику в несоответствующий интервал времени.К сожалению, чтобы правильно использовать его в графике, мне нужно, чтобы значения x были интерполированы с постоянным интервалом.

Учитывая следующие пары x, y, какой самый Pythonic способ сделать это?

(1, 23), (2, 42), (3.5, 89), (5, 73), (7, 54), (8, 41), (8.5, 37), (9, 23)

1 Ответ

7 голосов
/ 28 декабря 2011

Использование numpy.interp :

import numpy as np

a = np.array([(1, 23), (2, 42), (3.5, 89), (5, 73), (7, 54), (8, 41), (8.5, 37), (9, 23)])

x = np.arange(1, 10) # target x values

b = zip(x, np.interp(x, a[:,0], a[:,1]))

# b == [(1, 23.0),
#       (2, 42.0),
#       (3, 73.333333333333329),
#       (4, 83.666666666666671),
#       (5, 73.0),
#       (6, 63.5),
#       (7, 54.0),
#       (8, 41.0),
#       (9, 23.0)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...