c语言sscanf函数的用法是什么
317
2022-11-18
numpy基础(part5)--卷积
鄙人学习笔记,这个笔记以例子为主。 开发工具:Spyder
卷积convolve
卷积可以解决类似效果累积这种问题。比如,12月15日数据和14日、13日、12日….等前些天的数据都有关系,这时则可以用卷积。
卷积的计算过程
设有数组a和卷积核数组b:
a = [1, 2, 3, 4, 5]b = [8, 7, 6]
使用b作为卷积核数组对a数组执行卷积运算的过程如下:
完全卷积:卷积核数组中只要有一个开始生效,就可以开始得到结果。
同维卷积:卷积核的中心元素(7)开始生效时,就是同维卷积结果的开始,卷积核的中心元素(7)最后生效得到的数值,就是同维卷积结果的结束。同维卷积得到结果中元素的个数和原数组中元素的个数相等。[故,若要得到同维卷积结果,则卷积核数组只能含有奇数个元素,且同维卷积的结果和卷积核的中心元素大小关系最大]
有效卷积:卷积核数组中,必须所有元素均生效,才开始得到结果。
PS:卷积核数组有一个不成文的规定,就是:其元素要对称,比如,可以设置为:[1 2 3 2 1].
相关函数:
c = numpy.convolve(a, b, “卷积类型”)
例子
代码:
# -*- coding: utf-8 -*-import sysimport numpy as npimport datetime as dtimport matplotlib.pyplot as mpimport matplotlib.dates as md#sys.path.append("C:\\Users\\goatbishop\\Desktop\\data")#print(sys.path[-1])def time2time(yt): yt = str(yt, encoding='utf-8') nt = dt.datetime.strptime(yt, '%Y/%m/%d').date() t = nt.strftime('%Y-%m-%d') return tdates, AQI, PM25 = np.loadtxt( r'C:\Users\goatbishop\Desktop\data\data01.csv', delimiter = ',', usecols = tuple(range(3)), unpack = True, skiprows=1, dtype = 'M8[D], f8, f8', converters = {0:time2time})print(dates.shape)print(dates, dates.dtype)dates = dates.astype(md.datetime.datetime)kernel = np.ones(3)/3AQI_2 = np.convolve(AQI, kernel, 'valid')print(AQI_2, AQI_2.shape)mp.figure("Figure AQI", facecolor='lightgray' )mp.title("AQI Sequence Diagrams", fontsize = 16)mp.xlabel("Date", fontsize = 14)mp.ylabel("AQI", fontsize = 14)mp.grid(linestyle = ":")mp.plot(dates, AQI, color = 'dodgerblue', linestyle = '--', label = "AQI")mp.plot(dates[2:], AQI_2, color = 'r', linestyle = ':', linewidth = 6, label = "AQI(3)")ax = mp.gca()ax.xaxis.set_major_locator( md.WeekdayLocator(byweekday=md.SU))ax.xaxis.set_major_formatter( md.DateFormatter('%d %b %Y'))ax.xaxis.set_minor_locator(md.DayLocator())mp.legend(loc = 0)mp.show()
结果:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~