确定python中异常值的列表索引

确定python中异常值的列表索引,python,python-3.x,matplotlib,outliers,Python,Python 3.x,Matplotlib,Outliers,我发现它可能使用数组上的numpy和where条件语句来接收它们的索引,我知道在方框图中(例如matplotlib.pyplot.subplot().boxplot(…,showfliers=False…))我解释为“离群值”的传单的定义是1./3。四分位数+-1.5*IQR(四分位数间范围),如图所示 因为我有两个大小相同的独立列表(例如x,y),所以有必要从列表x中删除异常值,从列表y中删除具有相同索引的元素,或者压缩列表并处理它们 在确定传单方面需要改进的提案: xy = list(zip

我发现它可能使用数组上的
numpy
where
条件语句来接收它们的索引,我知道在方框图中(例如
matplotlib.pyplot.subplot().boxplot(…,showfliers=False…)
)我解释为“离群值”的传单的定义是1./3。四分位数+-1.5*IQR(四分位数间范围),如图所示

因为我有两个大小相同的独立列表(例如x,y),所以有必要从列表x中删除异常值,从列表y中删除具有相同索引的元素,或者压缩列表并处理它们

在确定传单方面需要改进的提案:

xy = list(zip(x,y))
xy = [(i,j) for i, j in xy\
    if (1. Quartile - 1.5 IQR) < i < (3. Quartile + 1.5 IQR)]
bp.append(ax.scatter(\
    list(zip(*xy))[0],\
    list(zip(*xy))[1]))
xy=list(zip(x,y))
xy=[(i,j)表示xy中的i,j\
如果(1.四分位数-1.5 IQR)
如果x和y是
np.array
类型,则可以执行以下操作:

quartile = ...
IQR = ...
# Here, I'm guess what you're attempting to do with these equations.
lower = (1. * quartile - 1.5 * IQR)
upper = (3. * quartile + 1.5 * IQR)
idx = np.where( (lower < x) & (x < upper) )

xs_without_outliers = x[idx]
ys_without_outliers = x[idx]

ax.scatter(xs_without_outliers, ys_without_outliers)
quartile=。。。
IQR=。。。
#在这里,我猜你想用这些方程做什么。
下限=(1.*四分位数-1.5*IQR)
上限=(3.*四分位数+1.5*IQR)
idx=np.其中((下
这里,idx是
x
中满足给定条件的索引。所以我们可以得到为什么它对应于满足条件的x的值,
y[idx]