python–使用convolve 对二维数据进行平滑
对于气象、海洋常用的二维网格数据,有些数据往往处理完后会有较多的噪声,需要对数据进行平滑,使得结果更耐看,这里介绍了使用卷积的方式进行二维网数据平滑,并给出了平滑效果。
结果如图所示:
import numpy as np from scipy import signal """ example: from scipy import signal import matplotlib.pyplot as plt import numpy as np a = np.random.rand(100).reshape(20,5) b = smooth2(a, 2, 2) plt.figure(dpi=200) plt.subplot(121,title='a') plt.contourf(a) plt.subplot(122,title='b') plt.contourf(b) """ def smooth2(a, nx, ny): from scipy import signal kernel = np.ones((nx,ny)) * 1 / (nx * ny) r = signal.convolve2d(a, kernel, mode = 'same') return r