Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中从二维数组中删除异常值_Python_Outliers - Fatal编程技术网

如何在python中从二维数组中删除异常值

如何在python中从二维数组中删除异常值,python,outliers,Python,Outliers,我不知道如何从二维数据中去除异常值。 例如,我有: import numpy as np x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) y = np.array([1, 2, 3, 4, 5, 1, 7, 8, 2, 10]) plt.xlabel("time") plt.ylabel("value") plt.scatter(x, y, color = "g", marker = &q

我不知道如何从二维数据中去除异常值。 例如,我有:

import numpy as np

x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
y = np.array([1, 2, 3, 4, 5, 1, 7, 8, 2, 10])

plt.xlabel("time")
plt.ylabel("value")

plt.scatter(x, y, color = "g", marker = "o") 

如您所见,异常值是位于第5个和第8个X位置的点

如何在python中找到并删除它们

重要


这只是一个示例数据。如果你想帮助我,请提供一个关于如何处理这类问题的一般答案。IQR似乎并不能解决这个问题。

这通常是通过计算数据集中每个点的标准偏差,然后选择一个偏差值来完成的,超过该值,您将丢弃带有该值的数据点


您正在使用
numpy
。我不确定,但我希望
numpy
模块能够计算一组数据点的标准偏差

数据总是这样一条线性增加的线,还是也会减少?您可以测量不同点的斜率,并根据平均值对其设置阈值。这种离群点检测问题是专门为其设计的。这很容易实现,维基百科的那篇文章中给出了一个伪代码示例。试一试。你用什么算法来判断什么是异常值,什么不是异常值?根据你自己的研究,到目前为止你尝试了什么?你的尝试有什么问题?若你们正在寻找一个数学算法或者统计测试来检测一般的异常值,那个么有一个数学和统计堆栈交换站点。这个网站要求一个简单的模型,当模型是一个二维线时,它不是那么简单。考虑示例图像的右上角和左下角的点,这些点将偏离质心最大的偏差,但它们实际上是内点集的一部分。是的,我想我正在考虑每个点与直线的距离的偏离。首先要在这些点上画一条线。然后计算每个点到直线的距离,并使用它们确定要丢弃的点,然后将新线拟合到其余点。我已经有一段时间没有这样做了。除非你首先拒绝了异常值,否则你无法准确地将一条线拟合到这些点上。