基础工具常用api汇总(机器学习)

目录

1.pandas(pd)

1.1数据导入与导出

1.2数据结构创建

1.3数据查看与检查

1.4数据选取与过滤

1.5数据清洗与预处理

1.6数据处理与转换

1.7数据统计与分析

1.8高级功能

2.numpy(np)

2.1数据结构与数组创建

2.2数组属性与操作

2.3数学运算与统计

2.4线性代数(np.linalg模块)

2.5随机数生成(np.random模块)

2.6索引与切片

2.7数据类型与转换

2.8文件与I/O操作

3.matplotlib(plt)

3.1核心模块与对象

3.2子图与布局控制

3.3样式与高级配置

3.4三维与高级绘图

3.5数据处理与集成

3.6文件与输出

3.7动画与交互

4.seaborn(sns)

4.1全局样式与主题配置

4.2数据关系可视化

4.3分类数据可视化

4.4分布可视化

4.5矩阵与网格可视化

4.6高级统计与分面网格

4.7其他实用工具

5.sklearn

5.1模型API(核心算法)

5.2数据预处理(sklearn.preprocessing)

5.3模型评估(sklearn.metrics)

5.4交叉验证与数据集划分(sklearn.model_selection)

5.5其他实用工具


本文包括机器学习领域常用第三方库的常用API,先做汇总,没有代码演示

1.pandas(pd)

import pandas as pd

1.1数据导入与导出
  • pd.read_csv(): 从CSV文件导入数据,支持自定义分隔符、编码、缺失值标记等
  • pd.read_excel(): 读取Excel文件,可指定工作表名称或索引。
  • pd.read_sql(): 从SQL数据库加载数据,需传入查询语句和数据库连接对象。
  • pd.read_json(): 解析JSON格式数据,支持文件路径或JSON字符串

df = pd.DataFrame()

  • df.to_csv(): 导出DataFrame至CSV文件,支持压缩格式和编码设置
  • df.to_excel(): 写入Excel文件,可指定工作表名称
1.2数据结构创建
  • pd.DataFrame(): 从字典、列表或NumPy数组创建二维表格{pd.DataFrame(columns=)}
  • pd.Series(): 创建一维数据序列,支持自定义索引
  • pd.date_range(): 生成时间序列索引,常用于时间序列数据分析
1.3数据查看与检查
  • df.head(n) / df.tail(n): 查看数据的前/后n行
  • df.shape: 获取数据维度(行数、列数)
  • df.info(): 显示数据类型、非空值统计及内存占用
  • df.describe(): 统计数值型列的均值、标准差、分位数等{df.describe().T}
  • s.value_counts(): 统计Series中唯一值的频次 。
1.4数据选取与过滤
  • df[col]: 按列名提取单列,返回Series 。
  • df.loc[] / df.iloc[]: 按标签(loc)或位置索引(iloc)选取行/列,支持布尔索引
  • df.query(): 使用字符串表达式筛选数据(如df.query("age > 30"))。
  • df.filter(): 按列名或正则表达式筛选列
1.5数据清洗与预处理
  • df.dropna(): 删除含缺失值的行或列,可设置阈值 。
  • df.drop('columns_name',axis=1,replace=True/False): 删除df中指定的列
  • df.drop(df[df['columns_name'] > 5].index,axis=0,replace=True/False): 删除符合指定条件下的行index - axis=0
  • df.fillna(value): 用指定值或插值方法填充缺失值
  • df.rename(): 重命名列名或索引,支持字典映射或函数批量修改
  • df.replace(): 替换特定值(如将1替换为'one')
  • pd.get_dummies(): 对分类变量进行独热编码 。
  • s.astype(): 转换列数据类型(如字符串转数值)
1.6数据处理与转换
  • df.sort_values(): 按指定列排序,支持升序/降序及多列排序
  • df.groupby(): 按列分组,支持聚合操作(如sum()mean()) 。
  • df.pivot_table(): 创建透视表,支持多维度聚合与自定义函数
  • df.apply(): 对行或列应用自定义函数(如标准化处理)
  • pd.concat(axis=0/1): 沿轴合并多个DataFrame,支持纵向或横向拼接 。
  • df.join() / pd.merge(): 按列关联多个数据集,支持内连接、左连接等
1.7数据统计与分析
  • df.mean() / df.median(): 计算均值、中位数 。
  • df.corr(): 计算列间相关系数矩阵,用于特征相关性分析
  • df.std() / df.var(): 计算标准差和方差
  • df.cumsum() / df.cummax(): 计算累计统计量
  • df.rolling(): 滑动窗口计算(如移动平均)
1.8高级功能
  • pd.api.types.infer_dtype(): 推断数据类型(如检查是否为分类数据)
  • pd.cut() / pd.qcut(): 分箱操作,将连续变量离散化
  • df.sample(): 随机抽样,支持按比例或固定数量
  • df.memory_usage(): 查看内存占用,优化存储效率

2.numpy(np)

2.1数据结构与数组创建
  • np.array(): 将列表/元组转换为ndarray对象,支持指定数据类型dtype
  • np.arange(): 生成等差序列数组,类似Python的range()但返回ndarray
  • np.zeros() / np.ones(): 创建全0或全1数组,可指定形状和数据类型
  • np.empty(): 创建未初始化的数组(内容随机)
  • np.full(): 创建填充指定值的数组
  • np.linspace() / np.logspace(): 生成线性或对数间隔的等长序列
  • np.identity() / np.eye(): 创建单位矩阵或对角线矩阵
  • np.random.rand() / np.random.randn(): 生成均匀分布或标准正态分布随机数 。
2.2数组属性与操作
  • ndarray.shape: 获取数组维度信息(如(3,4)表示3行4列)。
  • ndarray.dtype: 查看数组元素的数据类型(如int32, float64)。
  • ndarray.size: 数组元素总数(行数×列数)
  • ndarray.reshape(): 改变数组形状(不修改原始数据) 。
  • ndarray.resize(): 就地修改数组形状 。
  • ndarray.flatten(): 将多维数组展开为一维
  • ndarray.T: 转置数组(行列互换)
  • np.concatenate(): 沿指定轴合并多个数组
2.3数学运算与统计
  • np.add() / np.subtract(): 逐元素加减运算,支持广播机制
  • np.multiply() / np.divide(): 逐元素乘除运算
  • np.dot() / np.matmul(): 矩阵乘法(后者支持高维数组)
  • np.sum() / np.mean(): 计算总和或均值(可指定轴)
  • np.std() / np.var(): 计算标准差或方差
  • np.max() / np.min(): 返回最大值或最小值 。
  • np.argmax() / np.argmin(): 返回极值的索引 。
  • np.cumsum() / np.cumprod(): 计算累积和或累积积
2.4线性代数(np.linalg模块)
  • np.linalg.inv(): 计算矩阵的逆
  • np.linalg.det(): 计算矩阵行列式
  • np.linalg.eig(): 计算特征值和特征向量
  • np.linalg.svd(): 奇异值分解
  • np.linalg.solve(): 解线性方程组Ax = B
  • np.linalg.norm(): 计算矩阵或向量的范数
2.5随机数生成(np.random模块)
  • np.random.randint(): 生成指定范围内的随机整数 。
  • np.random.shuffle(): 打乱数组顺序(就地修改)
  • np.random.permutation(): 返回打乱后的数组副本
  • np.random.normal(): 生成正态分布随机数 。
  • np.random.uniform(): 生成均匀分布随机数
  • np.random.seed(): 设置随机数生成种子(保证可复现性)
2.6索引与切片
  • 布尔索引: 通过条件筛选元素(如arr[arr > 5]
  • 花式索引(Fancy Indexing): 使用整数数组或布尔数组索引
  • 多维切片: 使用逗号分隔维度(如arr[1:3, 2:4]) 。
2.7数据类型与转换
  • ndarray.astype(): 转换数组数据类型(如floatint
  • np.where(): 根据条件返回新数组(类似三元表达式)
  • np.isnan() / np.isinf(): 检测缺失值或无穷值
  • np.unique(): 返回数组的唯一值并排序
2.8文件与I/O操作
  • np.loadtxt() / np.savetxt(): 读写文本文件(如CSV)
  • np.load() / np.save(): 读写二进制文件(.npy格式)
  • np.savez(): 保存多个数组至压缩文件(.npz格式)

3.matplotlib(plt)

3.1核心模块与对象
  1. matplotlib.pyplot (隐式API)

import matplotlib.pyplot as plt

plt.plot(): 绘制折线图,支持多维数据与样式参数(如linestyle, color

plt.scatter(): 绘制散点图,可设置点大小(s)、颜色映射(cmap

plt.bar() / plt.barh(): 绘制垂直/水平条形图,支持分组与堆叠

plt.hist(): 绘制直方图,用于数据分布分析

plt.boxplot(x: 输入数据(一维数组或列表,labels: 箱线图的标签,notch: 是否在箱体上显示缺口(表示中位数的置信区间,vert: 是否垂直显示(True为垂直,False为水平)):绘制箱线图,用于了解数据的集中趋势、分散程度、异常值及分布形态,特别适用于多组数据的比较与探索性数据分析

plt.imshow() sns.heatmap():绘制热力图

plt.imshow(): 显示图像或二维数组,常用于热力图与矩阵可视化

plt.xlabel() / plt.ylabel(): 设置坐标轴标签

plt.title() / plt.legend(): 添加标题和图例

  1. 面向对象API(显式)

Figure: 代表整个画布,控制全局属性(如figsize, dpi

Axes: 坐标系对象,包含绘图方法(如ax.plot(), ax.scatter())及坐标轴控制

SubplotSpecGridSpec: 定义子图布局,支持复杂网格划分

3.2子图与布局控制
  • plt.subplots(): 创建多个子图,返回FigureAxes对象数组,用于批量绘图
  • plt.subplot(): 按行列索引创建单个子图(如plt.subplot(2,2,1)
  • fig.add_subplot(): 显式添加子图到指定位置
  • GridSpec模块: 自定义子图布局(如跨行列合并)
3.3样式与高级配置
  1. 全局样式

plt.style.use(): 应用预定义主题(如'ggplot', 'seaborn'

rcParams配置: 修改默认参数(如字体、颜色循环)

# 设置全局字体为支持中文的字体(如SimHei)
plt.rcParams['font.family'] = 'sans-serif'  # 字体族
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定具体字

  1. 颜色与标记

plt.cm模块: 提供颜色映射(如viridis, coolwarm

marker参数: 设置数据点标记样式(如'o', '*'

  1. 注释与标注

ax.annotate(): 添加箭头注释

ax.text(): 在指定位置添加文本

3.4三维与高级绘图
  • mpl_toolkits.mplot3d模块Axes3D: 创建3D坐标系,支持plot_surface(), scatter3D()等3D绘图
  • 等高线与填充plt.contour(): 绘制等高线
    • plt.contourf(): 填充等高区域
3.5数据处理与集成
  • plt.errorbar(): 绘制带误差线的折线图
  • plt.boxplot(): 绘制箱线图,用于离群值检测
  • plt.pcolor(): 伪彩色网格图,适用于矩阵数据可视化
  • 与第三方库集成pandas.DataFrame.plot(): 直接调用Matplotlib绘图
3.6文件与输出
  • plt.savefig(): 保存图像至文件(支持PNG、PDF等格式)
  • plt.show(): 显示图像(在非交互式环境中必须调用)
3.7动画与交互
  • animation.FuncAnimation: 创建动态图,支持帧更新
  • 事件处理plt.connect(): 绑定键盘/鼠标事件(如点击回调)

4.seaborn(sns)

4.1全局样式与主题配置
  • sns.set_theme(): 设置全局绘图主题、调色板及字体等参数,支持style(主题样式)、palette(颜色方案)、context(画布尺寸适配)等配置项
  • sns.set_style(): 指定绘图背景样式,可选darkgrid(默认)、whitegriddarkwhiteticks,影响网格线与背景色
  • sns.set_palette(): 设置颜色映射方案,内置选项包括deeppastelbright等,支持自定义颜色列表
  • sns.set_context(): 调整图表元素尺寸,支持paper(小图)、notebook(默认)、talk(演讲)、poster(海报)等场景适配
4.2数据关系可视化
  • sns.relplot(): 高级接口绘制关系图(散点图、折线图),支持kind参数指定图表类型,hue/size/style添加多维度分组
  • sns.scatterplot(): 绘制基础散点图,支持hue(颜色分组)、size(点大小映射)、alpha(透明度)等参数
  • sns.lineplot(): 绘制折线图,自动计算统计量(如均值),支持误差带(errorbar参数)与多变量分组
  • sns.lmplot(): 绘制回归拟合图,支持线性/非线性模型(order参数)及分组回归线对比
4.3分类数据可视化
  • sns.catplot(): 高级接口绘制分类图(箱线图、柱状图、小提琴图等),通过kind参数指定具体类型(如boxbarviolin
  • sns.boxplot(): 箱线图,展示数据分布的四分位数与离群值,支持hue分组与横向显示(orient参数)
  • sns.violinplot(): 小提琴图,结合核密度估计与箱线图,展示数据分布形状,支持split参数分割对比组
  • sns.barplot(): 柱状图,默认显示均值及置信区间,支持estimator参数自定义聚合函数(如summedian
  • sns.stripplot(): 分类散点图,使用抖动(jitter)减少重叠,适合小规模数据分布展示
4.4分布可视化
  • sns.displot(): 高级接口绘制分布图(直方图、核密度图),支持kind参数指定类型(histkdeecdf
  • sns.histplot(): 直方图,支持多变量叠加(hue)、堆叠(multiple)与二元分布(bivariate
  • sns.kdeplot(): 核密度估计图,展示连续变量分布,支持fill填充与levels多等高线绘制
  • sns.ecdfplot(): 经验累积分布函数图,直接展示数据累积比例
4.5矩阵与网格可视化
  • sns.heatmap(): 热力图,展示矩阵数据(如相关系数矩阵),支持annot(数值标注)、cmap(颜色映射)与聚类分析(cluster参数
  • sns.clustermap(): 聚类热力图,结合层次聚类算法对行列重新排序
  • sns.pairplot(): 矩阵散点图,展示多变量间两两关系,支持diag_kind(对角线图表类型)与hue分组
  • sns.jointplot(): 双变量联合分布图,结合散点图与边缘直方图/密度图,支持kind参数扩展(如hexkde
4.6高级统计与分面网格
  • sns.FacetGrid: 分面网格控制器,支持row/col参数按分类变量分面绘制子图,配合map方法应用自定义绘图函数
  • sns.PairGrid: 多变量网格图控制器,自定义网格对角线与非对角线图表类型
  • sns.JointGrid: 双变量联合分布网格控制器,支持自定义主图与边缘图类型
4.7其他实用工具
  • sns.color_palette(): 生成颜色序列,支持命名调色板(如huslSet2)或自定义颜色列表
  • sns.rugplot(): 轴须图,在坐标轴边缘标记数据分布位置,常与核密度图结合
  • sns.residplot(): 绘制回归残差图,用于验证模型拟合效果

5.sklearn

5.1模型API(核心算法)

线性模型(sklearn.linear_model)

  • LinearRegression: 普通最小二乘线性回归,用于连续值预测,支持非负约束(positive=True
  • Ridge / RidgeCV: 岭回归(L2正则化),防止过拟合,RidgeCV支持自动交叉验证调参(参数α)
  • Lasso / LassoCV: 套索回归(L1正则化),生成稀疏模型用于特征选择,LassoCV内置交叉验证调参
  • ElasticNet / ElasticNetCV: 弹性网络(L1+L2正则化),结合岭回归和套索回归的优势,适用于高维共线性数据
  • LogisticRegression: 逻辑回归,支持二分类/多分类任务,可调整正则化参数(C)及惩罚类型(penalty

树模型(sklearn.tree)

  • DecisionTreeClassifier / DecisionTreeRegressor: 决策树模型,支持分类与回归任务,可配置最大深度(max_depth)及分裂标准(criterion

集成模型(sklearn.ensemble)

  • RandomForestClassifier / RandomForestRegressor: 随机森林,通过Bootstrap采样与特征子集选择降低过拟合
  • GradientBoostingClassifier / GradientBoostingRegressor: 梯度提升树,通过迭代优化损失函数提升模型性能
5.2数据预处理(sklearn.preprocessing)
  • StandardScaler: 标准化处理(均值0,方差1),适用于高斯分布特征
  • MinMaxScaler / MaxAbsScaler: 归一化至指定范围(如[0,1]),适用于无异常值的数据
  • PolynomialFeatures: 生成多项式特征(如交互项),用于非线性关系建模,支持设置阶数(degree)与是否仅保留交互项(interaction_only
  • OneHotEncoder: 对分类变量进行独热编码,处理离散特征
  • SimpleImputer: 缺失值填充,支持均值、中位数、众数等策略

5.3模型评估(sklearn.metrics)

分类任务

  • confusion_matrix: 生成混淆矩阵,计算TP/FP/FN/TN
  • precision_score / recall_score / f1_score: 计算查准率、查全率及F1值,支持多分类(average参数)
  • roc_auc_score: 计算ROC曲线下面积(AUC),评估分类器排序能力
  • average_precision_score: 计算PR曲线下面积(AP),适用于类别不平衡场景

回归任务

  • mean_squared_error / mean_absolute_error: 计算均方误差(MSE)与平均绝对误差(MAE)
  • r2_score: 计算R²系数,衡量模型解释方差的比例

聚类任务

  • adjusted_rand_score: 调整兰德指数,评估聚类与真实标签的相似性。
  • silhouette_score: 轮廓系数,衡量聚类紧密度与分离度。

5.4交叉验证与数据集划分(sklearn.model_selection)
  • train_test_split: 随机划分训练集与测试集,支持分层抽样(stratify参数)
  • cross_val_score: K折交叉验证评估模型性能,支持自定义评分指标(scoring参数)
  • cross_validate: 多指标交叉验证,返回训练/测试得分及时间统计
  • KFold / StratifiedKFold: 生成K折索引,后者保持类别分布平衡
  • ShuffleSplit: 随机划分数据集多次,生成训练/测试索引对
  • GridSearchCV / RandomizedSearchCV: 超参数调优工具,前者遍历参数网格,后者随机采样参数组合
5.5其他实用工具
  • Pipeline: 将预处理与模型训练封装为流水线,简化流程
  • joblib: 模型持久化工具,支持快速保存与加载(dump/load
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值