2013-03-05 3 views
3

У меня есть два массива:Интерполяция массива в python?

array_x = [x1, x2, x3, x4... xn] 
array_y = [y1, y2, y3, y4... yn] 

Я хотел бы иметь функцию f(array_x, array_y, value_x), которая возвращает value_y, связанную с value_x путем интерполяции в массивы.

Как это сделать?

+0

Не совсем понятно, что вы ищете. Вы хотите, чтобы значение из 'array_y' находилось в позиции, соответствующей тому, где' value_x' находится в 'array_x'? – noio

+1

@Noio: Скажите, что у вас есть значения [1,2,3] в разы [10,20,30], идея состоит в том, чтобы iterpolate значение в момент времени 24. Существует множество способов сделать это. Самая простая - это просто кусочно-линейная интерполяция, которую использует «numpy.interp». – eryksun

ответ

10

Я думаю, что numpy.interp - это именно то, что вы хотите. например .:

numpy.interp(value_x,array_x,array_y) 

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

+0

Хм ... Как написать это самостоятельно? Некоторые люди жалуются на то, что у них нет никакого количества, поэтому мне это нужно ... –

+0

Линейная интерполяция - довольно известный алгоритм. Оттуда это просто вопрос поиска массива (можно использовать биссектризацию) для элементов, которые связывают значение, в которое вы хотите интерполировать. С учетом сказанного, для любого реального математического анализа «numpy» представляется стандартным. Есть ли причина, по которой эти люди не могут установить numpy? – mgilson

+0

Когда я делаю игру, я бы не захотел поместить тестер на numpy (если он установлен) и установщик (если это не так). Так... –

Смежные вопросы