我有一个值列表,我想删除所有值都在另一个值的标准偏差的百分之一之内。
我目前有两个嵌套的for循环。我想知道是否有更有效的方法,也许使用numpy和矢量化? 我当前的低效率代码。
log
答案 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)))