异常值处理:
| 函数 | 功能说明 | 简单示例 |
|---|
np.clip() | 将数组中的值限制在指定的最小值和最大值之间。 | np.clip([-1, 0, 10], 0, 5)返回[0, 0, 5]。 |
np.where() | 根据条件返回满足条件的元素或进行替换。 | np.where(arr < 0, 0, arr)将所有负数替换为 0。 |
np.percentile() | 计算数组的指定百分位数。 | q1, q99 = np.percentile(data, [1, 99])计算1%和99%分位数。 |
np.sort() | 对数组进行排序。 | np.sort([3,1,2])返回[1,2,3]。 |
缺失值处理:
| 函数 | 功能说明 | 简单示例 |
|---|
np.isnan() | 检查数组中的元素是否为NaN(缺失值)。 | np.isnan([1, np.nan, 3])返回[False, True, False]。 |
np.nan_to_num() | 将数组中的NaN替换为 0,将无穷大替换为有限数。 | np.nan_to_num([1, np.nan, 3])返回[1., 0., 3.]。 |
np.nanmean(),np.nanmedian()等 | 忽略NaN值后计算均值、中位数等统计量。 | np.nanmean([1, np.nan, 3])返回2.0。 |
np.delete() | 删除数组中指定位置的子数组。 | np.delete([1,2,3,4], [0,2])返回[2,4]。 |
去重
| 函数 | 功能说明 | 简单示例 |
|---|
np.unique() | 查找数组中的唯一元素,并可选地返回索引和计数。 | np.unique([1,2,2,3])返回[1,2,3]。 |
数据类型转换
| 函数 | 功能说明 | 简单示例 |
|---|
arr.astype() | 将数组转换为指定的数据类型。 | arr.astype(np.float32)将数组元素转为32位浮点数。 |
数据筛选与替换
| 函数 | 功能说明 | 简单示例 |
|---|
np.where() | 功能同上,也常用于基于条件筛选和替换数据。 | np.where(arr > 5, arr, 0)将所有大于5的元素保留,其余置0。 |
数据排序与重塑
| 函数 | 功能说明 | 简单示例 |
|---|
np.sort() | 功能同上,用于排序。 | np.sort([3,1,2])返回[1,2,3]。 |
arr.reshape() | 改变数组的形状而不改变其数据。 | arr.reshape(-1, 1)将一维数组转为列向量。 |
其他实用功能
小demo:
import numpy as np # 1. 原始数据(含异常值、缺失值、重复值) raw_data = np.array([1.0, 2.0, 999.0, np.nan, 2.0, 3.0, 4.0, 1000.0]) # 2. 处理缺失值:用列均值填充 nan_mean = np.nanmean(raw_data) data_filled = np.where(np.isnan(raw_data), nan_mean, raw_data) # 3. 处理异常值:百分位截断法 q1, q99 = np.percentile(data_filled, [1, 99]) data_clipped = np.clip(data_filled, q1, q99) # 4. 去除重复值 data_unique = np.unique(data_clipped) print(data_unique)