我想计算数据集中的均值和平均值,但由于我无法进入此处的多种原因,我的数组包含我的值和一些"填充物"值(当前设置为-1000)。
如何计算仅非-1000值的平均值(例如)?
res=[-1000 for x in range(0,10)]
res[1]=2
res[5]=3
res[7]=4
#something like this?
np.mean(res>-1000)
#the result should be the mean value of 2,3 and 4 (3)
MVCE
res=[1.0, 1.0, 1.0, 1.0, 1.0, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000]
#for instance
print(np.mean(res[res > -1000]))
答案 0 :(得分:3)
由于您标记了numpy
,因此您应该将其用于索引/切片。这是一个例子:
res = np.array([-1000 for x in range(0,10)])
res[1]=2
res[5]=3
res[7]=4
output = np.mean(res[res > -1000]) # 3.0
阅读numpy
docs,了解有关索引逻辑的详细信息。
答案 1 :(得分:2)
为什么在拥有朋友filter
方法
import statistics
number_list = [2, -1000, 3, 4, -1000, -1000]
not_1000 = list(filter(lambda x: x != -1000, number_list))
not_1000_mean = statistics.mean(not_1000)