别慌,让我先缓缓 2023-12-02 07:24 采纳率: 86.7%
浏览 4
已结题

有没有尽可能把多的误判数据不要,只要唯一情况就是【整体】【平移】的算法啊,如何解决?

有2000个数为一组,也可以更多。现在要判断这组数据是否出现整体平移现象,就比如说前1000都是20左右,后1000就变成18左右。
有没有什么好的办法啊,就是数据中如果某个时候突然低了100左右后又恢复则是正常的。有没有尽可能把多的误判数据不要,只要唯一情况就是【整体】【平移】的算法啊。
可以提供一下思路不

  • 写回答

2条回答 默认 最新

  • 梦回阑珊 2023-12-02 09:21
    关注

    回复不易,麻烦关注下博主,后面还有问题直接私信我,谢谢!!!

    要判断一组数据是否出现整体平移现象,你可以考虑使用一些统计学和信号处理的方法。以下是一种可能的思路:

    计算差分: 对每组数据进行差分操作,得到相邻数据点的差值。这可以通过使用NumPy库中的numpy.diff()函数来实现。

    import numpy as np
    
    def calculate_diff(data):
        return np.diff(data)
    
    
    

    确定阈值: 根据你的问题设置一个合适的阈值,该阈值表示数据是否发生了显著的变化。这个阈值可以根据实际情况来调整,通常可以通过观察数据的特性来估计。

    检测平移现象: 对差分数据应用阈值,查找是否存在超过阈值的变化。如果存在连续一段时间的变化,可能表示整体平移现象。

    def detect_shift(diff_data, threshold):
        shift_indices = np.where(np.abs(diff_data) > threshold)[0]
        return shift_indices
    
    
    

    确定平移范围: 根据检测到的平移现象的位置,你可以进一步分析这些位置,确定平移的范围和方向。

    def determine_shift_range(shift_indices):
        # 根据实际需求进行处理,例如找到最小和最大的索引来确定平移的范围
        min_index = np.min(shift_indices)
        max_index = np.max(shift_indices)
        return min_index, max_index
    
    
    

    可视化结果: 如果需要,你可以使用可视化工具来直观地展示数据和检测到的平移现象,以便更好地理解结果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月10日
  • 已采纳回答 12月2日
  • 创建了问题 12月2日