在机器学习中N 维数组Tensor是最核心的数据结构。无论是图像、语音还是文本最终都会转化为数组进行计算。本篇将从 Tensor 的基本操作出发带你走进数据预处理的真实世界。1. N 维数组神经网络的语言N 维数组在 PyTorch 中称为 Tensor是存储和变换数据的核心工具。0维标量Scalar如一个数字。1维向量Vector如特征列表。2维矩阵Matrix如一张灰度图或一个表格。3维及以上张量Tensor如彩色图片宽、高、通道。2. 核心代码张量的创建与计算文件展示了 PyTorch 中最常用的几种 Tensor 操作方法Pythonimport torch # 1. 创建 Tensor x torch.arange(12) # 创建 0-11 的一维张量 print(x.shape) # 查看形状torch.Size([12]) print(x.numel()) # 查看元素总数12 # 2. 改变形状 (Reshape) X x.reshape(3, 4) # 变为 3 行 4 列的矩阵 # 3. 特殊张量 torch.zeros((2, 3, 4)) # 全 0 张量 torch.ones((2, 3, 4)) # 全 1 张量 torch.randn(3, 4) # 标准正态分布随机张量 # 4. 张量连接 (Cat) Y torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]]) # 按行连接 (dim0) 或按列连接 (dim1) torch.cat((X, Y), dim0)3. 数据预处理从 CSV 到 Tensor在现实任务中数据通常存储在 CSV 文件中且往往存在缺失值NaN。文件演示了如何利用pandas库进行数据清洗。实战处理房屋数据假设我们有一个简单的房屋数据集其中包含缺失值Pythonimport os import pandas as pd # 1. 创建虚拟数据集 os.makedirs(os.path.join(., 01_Data), exist_okTrue) data_file os.path.join(., 01_Data, 01_house_tiny.csv) with open(data_file, w) as f: f.write(NumRooms,Alley,Price\n) f.write(NA,Pave,127500\n) f.write(2,NA,106000\n) f.write(4,NA,178100\n) f.write(NA,NA,140000\n) # 2. 读取数据 data pd.read_csv(data_file) # 3. 处理缺失值对数值型列用均值填充 inputs, outputs data.iloc[:, 0:2], data.iloc[:, 2] inputs inputs.fillna(inputs.mean()) # 4. 处理类别型缺失值独热编码 (One-Hot Encoding) # dummy_naTrue 会将 NaN 也作为一个类别处理 inputs pd.get_dummies(inputs, dummy_naTrue) print(inputs) # 5. 转换为 PyTorch Tensor X, y torch.tensor(inputs.values), torch.tensor(outputs.values) print(X)4. 关键技巧解析广播机制 (Broadcasting Mechanism)当两个形状不同的 Tensor 进行按元素运算时PyTorch 会触发广播机制自动复制行或列使两个 Tensor 形状一致后再相加。条件至少有一个维度是 1且其他维度兼容。内存节省在进行大规模运算时频繁的赋值如Y X Y会开辟新内存。建议使用原地操作In-place operation如Y X或Y[:] X Y以减少内存开销。5. 总结数据处理的闭环通过对该文件的分析我们可以梳理出进入模型前的标准步骤读取用 Pandas 加载原始数据。清洗填充数值型缺失值转换类别型数据。转换将 Pandas 的 DataFrame 转换为 Torch Tensor。计算利用 Tensor 的高效算子进行前向计算。 学习小结“Garbage in, Garbage out.” 预处理的好坏直接决定了模型的上限。熟练掌握torch操作和pandas转换是每一位算法工程师的必修课。
200_深度学习的地基:PyTorch 数据操作与 Pandas 预处理实战
发布时间:2026/5/17 1:42:01
在机器学习中N 维数组Tensor是最核心的数据结构。无论是图像、语音还是文本最终都会转化为数组进行计算。本篇将从 Tensor 的基本操作出发带你走进数据预处理的真实世界。1. N 维数组神经网络的语言N 维数组在 PyTorch 中称为 Tensor是存储和变换数据的核心工具。0维标量Scalar如一个数字。1维向量Vector如特征列表。2维矩阵Matrix如一张灰度图或一个表格。3维及以上张量Tensor如彩色图片宽、高、通道。2. 核心代码张量的创建与计算文件展示了 PyTorch 中最常用的几种 Tensor 操作方法Pythonimport torch # 1. 创建 Tensor x torch.arange(12) # 创建 0-11 的一维张量 print(x.shape) # 查看形状torch.Size([12]) print(x.numel()) # 查看元素总数12 # 2. 改变形状 (Reshape) X x.reshape(3, 4) # 变为 3 行 4 列的矩阵 # 3. 特殊张量 torch.zeros((2, 3, 4)) # 全 0 张量 torch.ones((2, 3, 4)) # 全 1 张量 torch.randn(3, 4) # 标准正态分布随机张量 # 4. 张量连接 (Cat) Y torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]]) # 按行连接 (dim0) 或按列连接 (dim1) torch.cat((X, Y), dim0)3. 数据预处理从 CSV 到 Tensor在现实任务中数据通常存储在 CSV 文件中且往往存在缺失值NaN。文件演示了如何利用pandas库进行数据清洗。实战处理房屋数据假设我们有一个简单的房屋数据集其中包含缺失值Pythonimport os import pandas as pd # 1. 创建虚拟数据集 os.makedirs(os.path.join(., 01_Data), exist_okTrue) data_file os.path.join(., 01_Data, 01_house_tiny.csv) with open(data_file, w) as f: f.write(NumRooms,Alley,Price\n) f.write(NA,Pave,127500\n) f.write(2,NA,106000\n) f.write(4,NA,178100\n) f.write(NA,NA,140000\n) # 2. 读取数据 data pd.read_csv(data_file) # 3. 处理缺失值对数值型列用均值填充 inputs, outputs data.iloc[:, 0:2], data.iloc[:, 2] inputs inputs.fillna(inputs.mean()) # 4. 处理类别型缺失值独热编码 (One-Hot Encoding) # dummy_naTrue 会将 NaN 也作为一个类别处理 inputs pd.get_dummies(inputs, dummy_naTrue) print(inputs) # 5. 转换为 PyTorch Tensor X, y torch.tensor(inputs.values), torch.tensor(outputs.values) print(X)4. 关键技巧解析广播机制 (Broadcasting Mechanism)当两个形状不同的 Tensor 进行按元素运算时PyTorch 会触发广播机制自动复制行或列使两个 Tensor 形状一致后再相加。条件至少有一个维度是 1且其他维度兼容。内存节省在进行大规模运算时频繁的赋值如Y X Y会开辟新内存。建议使用原地操作In-place operation如Y X或Y[:] X Y以减少内存开销。5. 总结数据处理的闭环通过对该文件的分析我们可以梳理出进入模型前的标准步骤读取用 Pandas 加载原始数据。清洗填充数值型缺失值转换类别型数据。转换将 Pandas 的 DataFrame 转换为 Torch Tensor。计算利用 Tensor 的高效算子进行前向计算。 学习小结“Garbage in, Garbage out.” 预处理的好坏直接决定了模型的上限。熟练掌握torch操作和pandas转换是每一位算法工程师的必修课。