怎么求出是数据密集区。怎么实现类似图中所示;怎么求出是数据密集区。怎么实现类似图中所示
1条回答 默认 最新
关注 感觉这不是一个数据密度分布问题,而是一个方差问题,即:找出方差较小的一段区间。我的思路是先利用滑动均值滤波,得到相对平滑的曲线,再找出相邻点连续升或降的间隔区间,剩余的就是数据平滑区。下面的代码先构造了一个分段直线,再叠加随机信号模拟题主的数据,然后做窗口宽度为10的滑动均值,结果显示,和最初的分段直线非常接近。
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> a = np.arange(0, 0.5, 0.01) >>> b = np.arange(0.5, 1, 0.01) >>> c = np.arange(1, 3, 0.01) >>> d = np.arange(3, 3.5, 0.01) >>> e = np.arange(3.5, 5, 0.01) >>> f = np.arange(5, 5.5, 0.01) >>> g = np.arange(5.5, 7, 0.01) >>> A = 2*a + 10 >>> B = -2*b + 12 >>> C = np.ones_like(c)*10 >>> D = -2*d + 16 >>> E = np.ones_like(e)*9 >>> F = 2*f - 1 >>> G = np.ones_like(g)*10 >>> data = np.hstack((A,B,C,D,E,F,G)) >>> plt.plot(data) [<matplotlib.lines.Line2D object at 0x000001DD8884EE48>] >>> plt.show()
>>> data += (np.random.random(data.size)-0.5)*0.2 >>> plt.plot(data) [<matplotlib.lines.Line2D object at 0x000001DD88BEE608>] >>> plt.show()
>>> w = np.ones(10)/10 >>> data = np.convolve(w, data)[10:-10] >>> plt.plot(data) [<matplotlib.lines.Line2D object at 0x000001DD8880EE48>] >>> plt.show()
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么