python 去除异常值
时间: 2023-07-05 21:28:12 浏览: 106
在 Python 中,可以使用一些统计学方法来去除异常值,例如 Z-score 方法和 IQR 方法。
Z-score 方法可以通过计算数据的标准差和平均值来计算每个数据点的 Z 分数,然后将 Z 分数超过某个阈值的数据点视为异常值。可以使用 SciPy 库中的 `zscore` 函数来计算 Z 分数,例如:
```python
from scipy.stats import zscore
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 100]
threshold = 3
data_without_outliers = [x for x in data if abs(zscore(data)) < threshold]
```
IQR 方法可以通过计算数据的四分位距(Q1 和 Q3)来确定数据点是否为异常值。可以使用 NumPy 库中的 `percentile` 函数来计算四分位距,例如:
```python
import numpy as np
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 100]
q1, q3 = np.percentile(data, [25, 75])
iqr = q3 - q1
lower_bound = q1 - (1.5 * iqr)
upper_bound = q3 + (1.5 * iqr)
data_without_outliers = [x for x in data if lower_bound <= x <= upper_bound]
```
以上两种方法都可以有效地去除异常值,具体使用哪种方法需要根据数据特点进行选择。
阅读全文