《动手学深度学习》—— 第2章—2.2数据预处理
·
2.2.数据预处理
2.2.1.读取数据集
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
# 这行代码的目的是在父目录(..)下创建一个名为 data 的文件夹。如果该文件夹已经存在,则不会抛出错误
data_file = os.path.join('..', 'data', 'house_tiny.csv')
# data_file 变量保存了 ../data/house_tiny.csv 的完整路径
with open(data_file, 'w') as f:
# 打开了文件 ../data/house_tiny.csv,并准备以写入模式对其进行操作
# 如果该文件不存在,将会被创建;如果已经存在,文件内容将被清空
- 代码解读:
- os.makedirs( ) 用于创建多层级的目录。如果路径中某些目录不存在,它会递归地创建所有目录。
- exist_ok=True 如果目录已经存在,则不会抛出 FileExistsError 错误。如果设置为 False(默认值),当目录已经存在时,会抛出一个异常。
- 使用 with 打开文件的好处是,它能确保在文件操作完成后自动关闭文件,而不是手动调用 f.close()。
- 打开 data_file 文件并将其绑定到变量 f 上。
- 常见模式:
- 'w':表示以写入模式打开文件。
- 如果文件已存在,它将会被覆盖(即清空原文件内容)。
- 如果文件不存在,会创建新文件。
- 'r':只读模式,文件必须存在。
- 'a':附加模式,在文件末尾添加内容,如果文件不存在会创建新文件。
- 'x':创建新文件并写入,如果文件已经存在会抛出错误。
- 'w':表示以写入模式打开文件。
CSV文件:第一行是表头(包含列名),接下来的每一行代表一个数据记录,而每行中的数据字段通过逗号(或其他分隔符)分隔开
Name, Age, City
John, 25, New York
Anna, 22, London
Mike, 32, San Francisco
要从创建的 CSV 文件中加载原始数据集,我们导入 pandas 包并调用 read_csv 函数
data = pandas.read_csv(data_file)
2.2.2.处理缺失值
NaN 项代表缺失值。典型的方法包括插值法和删除法。
- 插值法用同一列的均值替换“NaN”项。
- 删除法则直接忽略缺失值。
2.2.3.转换为张量格式
to_numpy()(Pandas 方法):将 Pandas 数据结构转换为 NumPy 数组
X.numpy()(PyTorch 方法):将 PyTorch 的 Tensor 转换为 NumPy 数组
X = torch.tensor(inputs.to_numpy(dtype=float))
inputs:通常是一个 Pandas 的 DataFrame 或 Series 对象,它包含了表格或序列的数据
to_numpy( ):是 Pandas 中将 DataFrame 或 Series 转换为 NumPy 数组的方法
torch.tensor( ):这是 PyTorch 的函数,用于将 NumPy 数组转换为 PyTorch 的张量
更多推荐
所有评论(0)