2013-03-05 65 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_x到阵列value_y

如何做到这一点?

+0

这是不完全清楚你在找什么。你是否想要'array_y'中的值位于'array_x'中'value_x'的位置? – noio 2013-03-05 13:27:54

+1

@Noio:假设你在时间[10,20,30]有值[1,2,3],这个想法是在时间为24的时候估计值。有很多方法可以做到这一点。最简单的就是分段线性插值,这是'numpy.interp'使用的。 – eryksun 2013-03-05 13:35:47

回答

10

我认为numpy.interp正是你想要的。例如: -

numpy.interp(value_x,array_x,array_y) 

注意的是,这里value_x可以是标量或其他类似数组的值。如果它是一个类似数组的值,则会返回一组相应的插值。

+0

嗯...如何写我自己的?有些人抱怨说他们没有任何结块,所以我自己需要这个... – 2015-12-19 20:11:56

+0

线性插值是一个非常有名的算法。从那里开始,这只是一个搜索数组(可以使用二分法)的因素来限定要插入的值的位置 - 就这一点而言,对于任何真正的数学分析,“numpy”似乎是标准。这些人不能安装numpy有没有原因? – mgilson 2015-12-19 21:31:43

+0

当我制作游戏时,我不想放置numpy(如果已安装)和安装程序(如果不是)的测试仪。所以... – 2015-12-19 23:12:30