2013-04-09 64 views
1

假設我有從Python中的圖獲取數據?

t= [0,7,10,17,23,29,31]

f_t= [4,3,11,19,12,9,17]

,我已經繪製F_T VS噸。

現在從繪製這7個數據點開始,我想要檢索100個數據點並將它們保存在文本文件中。我需要做什麼?

請注意,我不是在問情節的擬合;我知道兩點之間的情節是線性的。

什麼我問如果我創建一個數組一樣t=np.arange(0,31,.1),那麼什麼是F_T的相應陣列與之前的情節非常吻合,即在t之間的任意t = 0到t = 7,F_T將被確定通過使用連接(0,4)和(7,3)的直線等等。

回答

1

功能np.interp會做線性插值數據點之間:

f2 = np.interp(np.arange(0,31,.1), t, ft) 
+0

+1我只知道polyfit。 – 2013-04-09 17:58:26

+0

謝謝它解決了我的問題 – user22180 2013-04-09 18:41:11

2

您應該使用線性迴歸,該線性迴歸爲您提供了一條直線公式,您可以根據需要掌握多個點。

如果這條線更像是一條曲線,那麼您應該嘗試進行更高階的多項式迴歸。

即:

import pylab 
import numpy 

py_x = [0,7,10,17,23,29,31] 

py_y = [4,3,11,19,12,9,17] 

x = numpy.asarray(py_x) 
y = numpy.asarray(py_y) 

poly = numpy.polyfit(x,y,1) # 1 is the degree here. If you want curves, put 2, 3 or 5... 

聚現在你可以用與計算其他點polynome。

for z in range(100): 
    print numpy.polyval(poly,z) #this returns the interpolated f(z) 
+0

我不想配件。我只是希望f_t的值在不同時間t = [0,7,10,17,23,29,31] f_t = [4,3,11,19,12,9,17] – user22180 2013-04-09 18:09:34