我正在尝试从列表中删除一个项目,如果该项目不在中位数的四分位数范围之内。
这是清单:
l = [69, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 87, 89]
IQR,中位数以及中位数以上和以下均用于 import numpy as np
iqr = np.subtract(*np.percentile(l, [75, 25]))
median = np.percentile(l, 50)
minus = median - iqr
plus = median + iqr
负数是69,正数是71(使用中位数上下的IQR)
但是,当遍历列表并尝试删除iqr上方/下方的项目(87、89)时。它们不会从列表中删除。
for i in l:
if i < minus:
del i
if i > plus:
del i
当我打印列表时,它仍然显示87、89。
for ele in l[:]:
if ele < minus or ele > plus:
l.remove(ele)
您必须复制ll[:]
并使用来更改实际列表本身l.remove
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句