如何在不考虑python中的主导因素的情况下找到列表中的平均值?

时间:2020-04-21 05:27:29

标签: python list

im试图在列表中查找平均值。但有时我的列表中包含大量数字,可能会影响计算平均值。

list = [215,255,210,205,450,315,235,250,450,250,250,250,210,450,210]

平均值在210到250之间是有意义的,但是450和315等数字可能会增加平均值。如何自动删除450等主导因素并轻松找到正确的平均数?

1 个答案:

答案 0 :(得分:0)

与数据集的其余部分相比,您正在谈论的主导因素被称为异常值(非常高或非常低)的数据中的“异常值”。您可以使用zscore的概念从数据中删除这些异常值

  from scipy.stats import zscore
  list1 = [215,255,210,205,450,315,235,250,450,250,250,250,210,450,210]
  score=zscore(list1)
  threshold=1 #should be 3 generally
  list1 = [value for index,value in enumerate(list1) if abs(score[index])<=threshold ]

您可以根据自己的意愿更改阈值,并查看最终要确定阈值的list1(尝试输入0至3的多个值)。有关zscore的更多信息:outlier detection