电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第11讲--scipy-数据处理应用VIP免费

第11讲--scipy-数据处理应用_第1页
1/53
第11讲--scipy-数据处理应用_第2页
2/53
第11讲--scipy-数据处理应用_第3页
3/53
科学计算包SciPY及应用第11讲第一页,共五十三页。Scipy简介解决python科学计算而编写的一组程序包快速实现相关的数据处理如以前的课程中的积分第二页,共五十三页。Scipy提供的数据I/O相比numpy,scipy提供了更傻瓜式的操作方式二进制存储fromscipyimportioasfioimportnumpyasnpx=np.ones((3,2))y=np.ones((5,5))fio.savemat(r'd:\111.mat',{'mat1':x,'mat2':y})data=fio.loadmat(r'd:\111.mat',struct_as_record=True)data['mat1']第三页,共五十三页。Scipy的IOdata['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包importscipy.statsasstatsx=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分布第六页,共五十三页。假设检验假设给定的样本服从某种分布,如何验证?importnumpyasnpimportscipy.statsasstatsnormDist=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应用范围非常广,在物理学、化学、电子通讯、信号处理、概率论、统计学、密码学、声学、光学、海洋学、结构动力学等原理是将时域中的测量信号转换到频域,然后再将得到的频域信号合成为时域中的信号时域信号转换为频域信号时,将信号分解成幅值谱,显示与频率对应的幅值大小一个信号是由多种频率的信号合成的将这些信号分离,就能去掉信号中的噪声第十页,共五十三页。快速傅里叶变换FFTScipy类库中提供了快速傅里叶变换包fftpack第十一页,共五十三页。FFT应用案例—产生带噪声的信号importnumpyasnpimportmatplotlib.pyplotaspltfromscipyimportfftpackasffttimeStep=0.02#定义采样点间隔timeVec=np.arange(0,20,timeStep)#生成采样点#模拟带高频噪声的信号sigsig=np.sin(np.pi/5*timeVec)+0.1*np.random.randn(timeVec.size)#表达式中后面一项为噪声plt.plot(timeVec,sig)plt.show()第十二页,共五十三页。信号特征低频的原始信号,加高频的噪声如何去掉噪声?第十三页,共五十三页。FFT信号变换sig已知n=sig.sizesig_fft=fft.fft(sig)#正变换后的结果保存在sig_fft中sampleFreq=fft.fftfreq(n,d=timeStep)#获得每个采样点频率幅值pidxs=np.where(sampleFreq>0)#结果是对称的,仅需要使用谱的正值部分来找出信号频率freqs=sampleFreq[pidxs]#取得所有正值部分power=np.abs(sig_fft)[pidxs]#找到对应的频率振幅值freq=freqs[power.argmax()]#假设信噪比足够强,则最大幅值对应的频率,就是信号的频率sig_fft[np.abs(sampleFreq)>freq]=0#舍弃所有非信号频率main_sig=fft.ifft(sig_fft)#用傅立叶反变换,重构去除噪声的信号plt.plot(timeVec,main_sig,linewidth=3)第十四页,共五十三页。寻优f(x)=x2-4*x+8在x=2的位置,函数有最小值4第十五页,共五十三页。寻优scipy.optimize包提供了求极值的函数fminfromscipy.optimizeimportfminimportnumpy...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第11讲--scipy-数据处理应用

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部