用python對資料進行高斯擬合分布

2021-10-06 21:35:30 字數 1484 閱讀 6956

小李默默吐槽,被這個高斯擬合分布折磨的**,下面是正文

首先是公式

# 自定義函式 

deffunc

(x, a, u, sig)

:return a*

(np.exp(

-(x - u)**2

/(2* sig **2)

))

然後就是橫縱座標,畫圖

x = np.array(dist)

y = np.array(probability_dist)

popt, pcov = curve_fit(func, x, y, p0=[2

,2,2

], maxfev=

500000

) a = popt[0]

u = popt[1]

sig = popt[2]

curvex = np.linspace(np.

min(x)

, np.

max(x)

,100

) yvals = func(curvex,

*popt)

# 擬合y值

def

fun(x, a, u, sig, offset)

:return a*

(np.exp(

-(x - u)**2

/(2* sig **2)

))+ offset

當發現平均值是負數時,我就用這個重新計算。那麼多出來的引數寫在**呢

就是那個p0了,加了offset就要多給它傳個引數,至於引數怎麼設定,我是自己手動慢慢調的,可能這就是玄學吧。over

plot1 = plt.plot(x, y,

's', label=

'original values'

) plot2 = plt.plot(curvex, yvals,

'r', label=

'polyfit values'

) plt.xlabel(

'distance'

) plt.ylabel(

'frequency'

) plt.legend(loc=1)

# 指定legend的位置左上角

plt.title(

str(num +1)

+" "

+str

(line +1)

+'mean:'

+str

(format

(u,'.5f'))

+"var:"

+str

(format

(sig,

'.5f'))

) plt.show(

)

最後畫圖

tableau用資料分組 對資料進行分組

您可以建立組以在字段中合併相關成員。例如,如果您正在使用乙個顯示各科平均考試分數的檢視,則您可能需要將某些科目分組在一起以建立科目類別。english 和 history 可合併到 liberal arts majors 組中,而 biology 和 physics 可分組為 science maj...

flask sqlalchemy對資料進行操作

1.如何建表 增刪改查 2.如何對已存在的表進行增刪改查 方法一 採用對映資料庫的方法操作已存在的表,需要使用automap base函式。缺點 由於是對映一張表,表與表之間的關係不能反應,查詢多對多關係表時意義不大。from sqlalchemy import create engine from...

Python對資料庫進行操作

步驟三 編寫python指令碼,下例只是做了個查詢 具體使用要結合你的需求進行對資料庫操作,然後對操作結果進行校驗和下部操作。usr bin python coding utf 8 import mysql.connector import mysqldb conn mysqldb.connect ...