python筛选异常值
时间: 2023-07-05 15:36:24 浏览: 61
在 Python 中,可以使用 NumPy 和 Pandas 库来筛选异常值。
使用 NumPy 库:
1. 计算数据的均值和标准差;
2. 使用均值加减两倍标准差的方法,定义一个范围;
3. 筛选出不在该范围内的数据,即为异常值。
代码示例:
```python
import numpy as np
# 假设数据存储在变量 data 中
mean = np.mean(data)
std = np.std(data)
# 定义范围
range_min = mean - 2 * std
range_max = mean + 2 * std
# 筛选异常值
outliers = [x for x in data if x < range_min or x > range_max]
```
使用 Pandas 库:
1. 将数据存储在 Pandas 的 DataFrame 中;
2. 使用 describe() 方法获取数据的统计信息;
3. 使用 quantile() 方法计算分位数;
4. 使用筛选条件,筛选出异常值。
代码示例:
```python
import pandas as pd
# 假设数据存储在变量 data 中
df = pd.DataFrame({'data': data})
# 获取统计信息
desc = df.describe()
# 计算分位数
q1 = desc.loc['25%'][0]
q3 = desc.loc['75%'][0]
iqr = q3 - q1
# 定义范围
range_min = q1 - 1.5 * iqr
range_max = q3 + 1.5 * iqr
# 筛选异常值
outliers = df[(df['data'] < range_min) | (df['data'] > range_max)]
```