我想擬合一條線,該線使用誤差爲 的倒數作爲權重。scipy polyfit x,y,權重=誤差線
我把我的數據x和y分成10個分檔(每個分26個分)並取其平均值。 這不是價值的矩陣,所以polyfit對此並不滿意。
# note I didn't test this pseudo code....
import numpy as np
import scipy
x = np.random.randn(100)
y = np.random.rand(100)
x_bins = np.linspace(x.min(), x.max(), 10) # reduction of data into 10 bins
y_bins = np.linspace(y.min(), y.max(), 10)
x_bin = np.digitize(x, x_bins)
y_bin = np.digitize(y, y_bins)
x_mu = np.zeros(10)
y_mu = x_mu.copy()
err = x_mu.copy()
for i in range(10):
x_mu = np.mean(x[x_bin==i])
y_mu = np.mean(y[y_bin==i])
err = np.std([y[y_bin==i])
x_mu[np.isnan(x_mu)] = 0
y_mu[np.isnan(y_mu)] = 0
errror[np.isnan(error)] = 0
plt.errorbar(x_mu, y_mu, err, fmt='o')
編輯:scipy.polyfit停止抱怨病態的投入......
out = scipy.polyfit(x_mu, y_mu, deg=1, w=error)
你能展示一個實際的,經過測試的例子嗎?上面的'x'範圍從0到1,但你似乎在0到100的直方圖。 – 2014-09-26 05:47:10
我將編輯示例感謝 – wbg 2014-09-26 06:00:45
+1 Benjamin Bannier修復我的示例代碼幫助我解決了一些愚蠢的問題,現在是polyfit工程。 ..:/ – wbg 2014-09-26 06:15:21