查找彼此标准偏差的1%以内的值的有效方法

时间:2019-09-15 19:18:19

标签: python arrays numpy vectorization

我有一个值列表,我想删除所有值都在另一个值的标准偏差的百分之一之内。

我目前有两个嵌套的for循环。我想知道是否有更有效的方法,也许使用numpy和矢量化? 我当前的低效率代码。

log

1 个答案:

答案 0 :(得分:0)

正如您提到的,这里的顺序无关紧要。

    std_range = np.std(values) / 100
    sorted_values = sorted(values)
    for id, val in enumerate(sorted_values[:-1]):
        next_value = sorted_values[id + 1]

        if val + std_range >= next_value:  # value is within range
            sorted_values[id] = None

    print(list(filter(None, sorted_values)))