2013-03-05 19 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