如何解决实验数据的法线拟合
大家好 我想从实验结果获得的一组数据中获得正态拟合。由于我是从python开始的,所以我不知道从哪里开始。这是我的实验数据。其粒度分布。我想获取均值和标准差。 x是大小,y是频率。
在此先感谢您的帮助!
import matplotlib.pyplot as plt
import numpy as np
x=([0.251839516,0.490440575,0.744647994,0.990643452,1.244142316,1.488611658,1.741274792,1.986416351,2.232538986,2.495993944,2.736393641,2.985059803,3.241792581,3.497435276,3.744829674,3.991788039,4.23860106])
y=([0.271164269,0.492366389,1.256781226,2.468772142,4.479769871,8.376708554,11.85803482,14.57231794,15.56056321,14.05547313,11.11227252,7.625604845,3.947070401,2.186355791,0.937144587,0.455061317,0.228687358])
plt.scatter(x,y,color='red',label='Experiment')
解决方法
如果您想使用SciPy,则可以使用scipy.stats.norm:
StreamReader
,
x = np.array([...])
x.mean()
x.std()
,
使用此代码
from scipy.stats import norm as normalDist
x=([0.251839516,0.490440575,0.744647994,0.990643452,1.244142316,1.488611658,1.741274792,1.986416351,2.232538986,2.495993944,2.736393641,2.985059803,3.241792581,3.497435276,3.744829674,3.991788039,4.23860106])
y=([0.271164269,0.492366389,1.256781226,2.468772142,4.479769871,8.376708554,11.85803482,14.57231794,15.56056321,14.05547313,11.11227252,7.625604845,3.947070401,2.186355791,0.937144587,0.455061317,0.228687358])
points = list(zip(*(x,y)))
mu,std = normalDist.fit(points)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。