在Python中从数组中提取特定值

时间:2018-05-02 14:41:42

标签: python arrays numpy

我想计算数据集中的均值和平均值,但由于我无法进入此处的多种原因,我的数组包含我的值和一些"填充物"值(当前设置为-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]))

2 个答案:

答案 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)