我目前正在研究一种算法,它从超声波传感器(距离传感器)中获取值,该传感器不断读取并计算最近10个值的平均值。问题是超声波传感器会有随机的尖峰,这会显着偏离平均读数。
example of readings
19.42
19.43
130.50
19.46
19.44
19.42
144.52
19.4
145.90
19.37
[Average Distance:23] #just a example not actual results所以现在我想知道是否有任何方法可以忽略基于多数的高值,例如,如果列表中有大多数小值,它将忽略高值,反之亦然,如果有大多数高值忽略小值。
example of desired result
19.42
19.43
130.50
19.46
19.44
19.42
144.52
19.4
145.90
19.37
[Average Distance:19] #ignored spiked values are the majority of numbers are 19如果需要进一步的解释/例子,一定要让我知道,提前谢谢。
发布于 2020-11-10 16:13:10
您可以使用numpy.median
import numpy as np
vals = np.array([19.42
,19.43
,130.50
,19.46
,19.44
,19.42
,144.52
,19.4
,145.90
,19.37])
np.median(vals)生成19.435。中位数是这样一个点,即一半的观测值在上面,一半在下面,请参阅median
https://stackoverflow.com/questions/64764900
复制相似问题