python连接高斯数据库_Python加载数据并执行多高斯fi
简单制作单高斯和的参数化模型函数。为最初的猜测选择一个好的值(这是一个非常关键的步骤),然后让scipy.optimize稍微调整一下这些数字。
你可以这样做:import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize
data = np.genfromtxt('data.txt')
def gaussian(x, height, center, width, offset):
return height*np.exp(-(x - center)**2/(2*width**2)) + offset
def three_gaussians(x, h1, c1, w1, h2, c2, w2, h3, c3, w3, offset):
return (gaussian(x, h1, c1, w1, offset=0) +
gaussian(x, h2, c2, w2, offset=0) +
gaussian(x, h3, c3, w3, offset=0) + offset)
def two_gaussians(x, h1, c1, w1, h2, c2, w2, offset):
return three_gaussians(x, h1, c1, w1, h2, c2, w2, 0,0,1, offset)
errfunc3 = lambda p, x, y: (three_gaussians(x, *p) - y)**2
errfunc2 = lambda p, x, y: (two_gaussians(x, *p) - y)**2
guess3 = [0.49, 0.55, 0.01, 0.6, 0.61, 0.01, 1, 0.64, 0.01, 0] # I guess there are 3 peaks, 2 are clear, but between them there seems to be another one, based on the change in slope smoothness there
guess2 = [0.49, 0.55, 0.01, 1, 0.64, 0.01, 0] # I removed the peak I'm not too sure about
optim3, success = optimize.leastsq(errfunc3, guess3[:], args=(data[:,0], data[:,1]))
optim2, success = optimize.leastsq(errfunc2, guess2[:], args=(data[:,0], data[:,1]))
optim3
plt.plot(data[:,0], data[:,1], lw=5, c='g', label='measurement')
plt.plot(data[:,0], three_gaussians(data[:,0], *optim3),
lw=3, c='b', label='fit of 3 Gaussians')
plt.plot(data[:,0], two_gaussians(data[:,0], *optim2),
lw=1, c='r', ls='--', label='fit of 2 Gaussians')
plt.legend(loc='best')
plt.savefig('result.png')
如您所见,这两种配合(视觉上)几乎没有区别。所以你不能确定源中是否有3个高斯子,或者只有2个高斯子。但是,如果您必须进行猜测,请检查最小的残差:err3 = np.sqrt(errfunc3(optim3, data[:,0], data[:,1])).sum()
err2 = np.sqrt(errfunc2(optim2, data[:,0], data[:,1])).sum()
print('Residual error when fitting 3 Gaussians: {}\n'
'Residual error when fitting 2 Gaussians: {}'.format(err3, err2))
# Residual error when fitting 3 Gaussians: 3.52000910965
# Residual error when fitting 2 Gaussians: 3.82054499044
在这种情况下,3高斯给出了一个更好的结果,但我也使我的初步猜测相当准确。
python连接高斯数据库_Python加载数据并执行多高斯fi相关推荐
- python连接oracle数据库 插入clob类型数据
python连接oracle数据库 插入clob类型数据 连接数据库 import cx_Oracle as cx #导入模块 con = cx.connect('root', 'root123', ...
- 用python的五种方式_Python加载数据的5种不同方式(收藏)
数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...
- python数据加载常规教程_Python加载数据的5种不同方式(收藏)
数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...
- python处理csv文件缺失值_python 加载数据是-1为缺失值时替换为空
最近在工作时,加载数据,原始数据用-1代表缺失值,之前加载的时候替换一直没有成功,后来直接把原文件的给改下,才去替换的. 今天 试了下如下方法,可行: 1. 加载数据时直接加载为str型: 2. 把- ...
- python爬虫之Ajax动态加载数据抓取--豆瓣电影/腾讯招聘
动态加载数据抓取-Ajax 特点 1.右键 -> 查看网页源码中没有具体数据 2.滚动鼠标滑轮或其他动作时加载 抓取 1.F12打开控制台,页面动作抓取网络数据包 2.抓取json文件URL地址 ...
- python脚本迁移数据库_Python迁移MySQL数据到MongoDB脚本
MongoDB是一个文档数据库,在存储小文件方面存在天然优势.随着业务求的变化,需要将线上MySQL数据库中的行记录,导入到MongoDB中文档记录. 一.场景:线上MySQL数据库某表迁移到Mong ...
- python连接sql数据库_python连接SQL数据库
前言 上次通过学习,懂得了如何通过不同的对象来定位页面的元素(id,class_name,tag_name,xpath,css等),可以实现模拟点击的功能.当然,这只是初期的web自动化的一点小成绩. ...
- java中class.forname连接mysql数据库_Java加载数据库连接驱动,为什么要用Class.forName()方法?...
展开全部 目的是为了实例化对象. Class.forName("")返回的是类e68a84323131333532363134313032313635333133336564363 ...
- python连接sql数据库_python连接sql server数据库实现增删改查
简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...
最新文章
- LeetCode简单题之在既定时间做作业的学生人数
- 用漫画的方式理解共享锁和排他锁
- java 创建ssh用户秘钥,安装Java、Maven、Git,以及生成、拷贝密钥
- vSphere 6.5 Upgrade Considerations Part-3(vSphere 6.5升级注意事项第3部分)
- 设计模式的征途—4.抽象工厂(Abstract Factory)模式
- 设为首页/加入收藏代码
- sscanf_s函数用法
- 超火的快闪文字视频制作,用这个软件就能轻松学会
- Ansible9:变量之Fact
- 【一起入门NLP】中科院自然语言处理作业一:RNN,DNN,CNN 进行猫狗分类(pytorch入门)【代码+报告】
- 在精不在多,3 分钟看 3 个 JS 小把戏
- Axure获取焦点动画
- Elasticsearch学习(二)————搜索
- 高校教室多媒体设备报修管理系统
- Spark RDD用法
- Argo-DCS数据传输笔记
- 21天养成编程习惯:09月Scratch编程训练营计划!
- python读txt的各种操作(逗号,tab键,空格隔开,转成list)
- matlab编程与最优化设计应用,MATLAB编程与最优化设计应用
- 给打算创建一个欢乐的婚礼建议
热门文章
- 一次二次开发中的经验与教训(一)
- cmake的使用--从零建立一个小cmake工程
- ARM中C语言和汇编语言的混合编程
- 【CyberSecurityLearning 附】渗透测试技术选择题 + 法律法规
- 【CyberSecurityLearning 32】Apache配置、Apache的访问控制设定、LAMP平台的搭建
- 操作符offset 和 jmp指令
- final 字符常量——确定一个值后该值无法改动,使变量变字符常量
- Java中this的简单应用
- 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
- Java I/O模型从BIO到NIO和Reactor模式