2011-12-28 43 views
3

我有一個模塊以不一致的時間間隔收集統計信息。不幸的是,爲了在圖表中很好地使用它,我需要將x值內插到一致的間隔。在Python中插入週期性數據

鑑於以下x,y雙,什麼是最Python的方法來做到這一點?

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

什麼是您預期的結果? – juliomalegria 2011-12-28 15:15:46

+1

'y = mx + c'。您可以通過首先對其進行線性化來「歸一化」任何線。然後,因爲它是一條直線,所以沿着該線很容易沿着該線向下移動到您需要的正確的x/y值。 – Ben 2011-12-28 15:17:47

回答

7

使用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)]