python删除异常值
时间: 2023-10-18 21:04:07 浏览: 27
在Python中,可以使用以下方式删除异常值:
1. 使用numpy库的percentile()函数来计算出数据集中的第25个百分位数和第75个百分位数。
2. 然后,可以使用numpy库的where()函数定位到数据集中的异常值,并将其从数据集中删除。
以下是一个示例代码:
```python
import numpy as np
# 生成一个样本数据集
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100])
# 计算第25个百分位数和第75个百分位数
q25, q75 = np.percentile(data, [25, 75])
# 计算四分位距
iqr = q75 - q25
# 计算上限和下限
upper_bound = q75 + 1.5 * iqr
lower_bound = q25 - 1.5 * iqr
# 使用where()函数定位异常值
outliers = np.where((data > upper_bound) | (data < lower_bound))
# 删除异常值
data_cleaned = np.delete(data, outliers)
print("原始数据集:", data)
print("清理后的数据集:", data_cleaned)
```
输出:
```
原始数据集: [ 1 2 3 4 5 6 7 8 9 10 100]
清理后的数据集: [1 2 3 4 5 6 7 8 9 10]
```
在这个示例中,使用了四分位距法(IQR)来计算异常值的上限和下限。如果数据集中的值大于上限或小于下限,那么就被认为是异常值。然后,使用numpy库的where()函数定位到这些异常值,并使用numpy库的delete()函数将它们从数据集中删除。