scipy-数据处理应用.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《0.SNMP基础

科学计算包SciPY及应用 第11讲 Scipy简介 解决python科学计算而编写的一组程序包 快速实现相关的数据处理 如以前的课程中的积分 Scipy提供的数据I/O 相比numpy,scipy提供了更傻瓜式的操作方式 二进制存储 from scipy import io as fio import numpy as np x=np.ones((3,2)) y=np.ones((5,5)) fio.savemat(rd:\111.mat,{mat1:x,mat2:y}) data=fio.loadmat(rd:\111.mat,struct_as_record=True) data[mat1] Scipy的IO data[mat1] array([[ 1., 1.], [ 1., 1.], [ 1., 1.]]) data[mat2] array([[ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.], [ 1., 1., 1., 1., 1.]]) 统计假设与检验 stats包 stats提供了产生连续性分布的函数, 均匀分布(uniform)、 正态分布(norm)、 贝塔分布(beta); 产生离散分布的函数, 伯努利分布(bernoulli)、 几何分布(geom) 泊松分布 poisson 使用时,调用分布的rvs方法即可 统计假设与检验 stats包 import scipy.stats as stats x=stats.uniform.rvs(size=20) #产生20个在[0,1]均匀分布的随机数 y=stats.beta.rvs(size=20,a=3,b=4) 产生20个服从参数a=3,b=4的贝塔分布随机数 z=stats.norm.rvs(size=20,loc=0,scale=1) 产生了20个服从[0,1]正态分布的随机数 x=stats.poisson.rvs(0.6,loc=0,size=20) 产生poisson分布 假设检验 假设给定的样本服从某种分布,如何验证? import numpy as np import scipy.stats as stats normDist=stats.norm(loc=2.5,scale=0.5) z=normDist.rvs(size=400) mean=np.mean(z) med=np.median(z) dev=np.std(z) print(mean=,mean, med=,med, dev=,dev) 设z是实验获得的数据,如何验证它是否是正态分布的? 假设检验 假设给定的样本服从某种分布,如何验证? statVal, pVal = stats.kstest(z,norm,(mean,dev)) print(pVal=,pVal) 计算得到: pVal= 0.667359687999 结论:我们接受假设,既z数据是服从正态分布的 信号特征 低频的原始信号,加高频的噪声 如何去掉噪声? 快速傅里叶变换 FFT 应用范围非常广,在物理学、化学、电子通讯、信号处理、概率论、统计学、密码学、声学、光学、海洋学、结构动力学等 原理是将时域中的测量信号转换到频域,然后再将得到的频域信号合成为时域中的信号 时域信号转换为频域信号时,将信号分解成幅值谱,显示与频率对应的幅值大小 一个信号是由多种频率的信号合成的 将这些信号分离,就能去掉信号中的噪声 快速傅里叶变换 FFT Scipy类库中提供了快速傅里叶变换包fftpack FFT应用案例—产生带噪声的信号 import numpy as np import matplotlib.pyplot as plt from scipy import fftpack as fft timeStep = 0.02 # 定义采样点间隔 timeVec = np.arange(0, 20, timeStep) # 生成采样点 # 模拟带高频噪声的信号sig sig = np.sin( np.pi / 5 * timeVec) + 0.1 * np.random.randn(timeVec.size) # 表达式中后面一项为噪声 plt.plot(timeVec, sig) plt.show() 信号特征 低频的原始信号,加高频的噪声 如何去掉噪声? FFT信号变换 sig已知 n=sig.size sig_fft = fft.fft(si

文档评论(0)

wendan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档