Python 编程概念层级解析:以 scikit-learn 为例
概念层级关系示意图
Python 编程概念层级结构 (Hierarchy of Python Programming Concepts)
└── 库/库集合 (Library/Collection of Packages)
└── scikit-learn (整个机器学习库)
├── 包 (Package)
│ ├── sklearn.datasets (数据集相关功能包)
│ ├── sklearn.model_selection (模型选择包)
│ ├── sklearn.preprocessing (预处理包)
│ └── sklearn.neighbors (近邻算法包)
│ ├── 模块 (Module)
│ │ └── _classification.py (分类算法实现模块)
│ └── 类 (Class)
│ └── KNeighborsClassifier (K近邻分类器类)
│ └── 方法 (Method)
│ ├── fit() (训练方法)
│ └── predict() (预测方法)
└── 函数 (Function)
├── load_iris() (数据集加载函数)
└── train_test_split() (数据分割函数)
概念详细解析(中英双语)
1. 库/库集合 (Library/Collection of Packages)
- 中文:完成特定领域任务的相关包集合,通过 pip 安装
- English: A collection of related packages that perform specific domain tasks, installed via pip
- 示例:
scikit-learn
是一个完整的机器学习库 - 特征:包含多个功能包,提供统一API接口
2. 包 (Package)
- 中文:包含
__init__.py
文件的目录,组织相关模块 - English: A directory containing an
__init__.py
file that organizes related modules - 示例:
sklearn.datasets
(数据集相关功能包)sklearn.model_selection
(模型选择包)
- 特征:通过点号访问,可包含子包
3. 模块 (Module)
- 中文:单个
.py
文件,包含可执行代码 - English: A single
.py
file containing executable code - 示例:
_classification.py
(包含 KNN 分类器实现的模块) - 特征:通过
import
导入,包含类、函数定义
4. 类 (Class)
- 中文:创建对象的蓝图,包含属性和方法
- English: A blueprint for creating objects with attributes and methods
- 示例:
KNeighborsClassifier
(K近邻分类器类) - 特征:使用大写驼峰命名法,通过实例化创建对象
5. 方法 (Method)
- 中文:类中定义的函数,操作类实例
- English: A function defined inside a class that operates on class instances
- 示例:
fit()
,predict()
(K近邻分类器的方法) - 特征:第一个参数通常是
self
,通过实例调用
6. 函数 (Function)
- 中文:独立的可执行代码块
- English: An independent block of executable code
- 示例:
load_iris()
,train_test_split()
- 特征:可直接调用,不依赖类实例
代码示例解析
# 从 sklearn 库的 datasets 包导入 load_iris 函数
from sklearn.datasets import load_iris
# 从 sklearn 库的 model_selection 包导入 train_test_split 函数
from sklearn.model_selection import train_test_split
# 从 sklearn 库的 preprocessing 包导入 StandardScaler 类
from sklearn.preprocessing import StandardScaler
# 从 sklearn 库的 neighbors 包导入 KNeighborsClassifier 类
from sklearn.neighbors import KNeighborsClassifier
# 使用数据集加载函数
iris = load_iris() # 调用函数
# 实例化预处理类
scaler = StandardScaler() # 创建类实例
# 实例化分类器类
knn = KNeighborsClassifier() # 创建类实例
# 调用类的方法
knn.fit(X_train, y_train) # 调用训练方法
文件系统对应关系
site-packages/ # Python 第三方库安装目录
└── sklearn/ # scikit-learn 库主目录
├── __init__.py # 库初始化文件
├── datasets/ # datasets 包
│ ├── __init__.py # 包初始化文件
│ ├── _base.py # 数据集基础模块
│ └── data/ # 数据存储目录
├── model_selection/ # model_selection 包
│ ├── __init__.py
│ └── _split.py # 包含 train_test_split 函数的模块
├── preprocessing/ # preprocessing 包
│ ├── __init__.py
│ └── _data.py # 包含 StandardScaler 类的模块
└── neighbors/ # neighbors 包
├── __init__.py
└── _classification.py # 包含 KNeighborsClassifier 类的模块
概念对比表
概念 | 中文名称 | 英文名称 | 示例 | 导入方式 | 调用方式 |
---|---|---|---|---|---|
Library | 库 | Library | scikit-learn | pip install | 不直接调用 |
Package | 包 | Package | sklearn.datasets | import package | package.module |
Module | 模块 | Module | _classification.py | from package import module | module.function |
Class | 类 | Class | KNeighborsClassifier | from module import Class | instance = Class() |
Method | 方法 | Method | fit() | 随类导入 | instance.method() |
Function | 函数 | Function | load_iris() | from module import function | function() |
实际工作流中的层级关系
-
导入库的特定功能:
from sklearn.datasets import load_iris
- 访问库 → 包 → 模块 → 函数
-
使用数据处理类:
scaler = StandardScaler()
- 访问库 → 包 → 模块 → 类 → 实例化
-
调用机器学习方法:
knn.fit(X_train, y_train)
- 访问库 → 包 → 模块 → 类 → 实例 → 方法
这种层级结构使Python代码具有高度组织性,同时保持灵活性,允许开发者按需导入特定功能而非整个库。