数据预处理
注:
该文章为作者学习深度学习笔记,共参考以下两大开源深度学习资料:
- 深度学习(花书)
https://github.com/exacity/deeplearningbook-chinese - 动手学习深度学习(李沐)
https://zh-v2.d2l.ai/
读写数据集
通常对于批量数据处理,使用pandas数据集,可以很容易和兼容张量,本节介绍pandas与预处理原始数据,和格式转换步骤
写数据集
- 数据集建立,首先创建数据集,并将数据集储存在CSV文件中…/data/data_set.csv中。
import os
# 判断是否存在目标文件夹,如果不存在,则创建
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
# 创建文件
data_file = os.path.join('..', 'data', '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')
运行结果:
NumRooms | Alley | Price |
---|---|---|
NA | Pave | 127500 |
2 | NA | 106000 |
4 | NA | 178100 |
NA | NA | 140000 |
读数据集
- 要从创建的CSV文件中加载原始数据集,需要导入pandas包并调用read_csv函数 **(或者直接导入CSV包,p
- ython生态系统中有该工具包,同样很方便)**。该数据集有四行三列。其中每行描述了房间数量(“NumRooms”)、巷子类型(“Alley”)和房屋价格(“Price”)。
import pandas as pd
data = pd.read_csv(data_file)
print(data)
output:
NumRooms | Alley | Price | |
---|---|---|---|
0 | NaN | Pave | 127500 |
1 | 2.0 | NaN | 106000 |
2 | 4.0 | NaN | 178100 |
3 | NaN | NaN | 140000 |
读写图片
该部分内容为平时实践总结,由于经常做计算机视觉相关数据集处理,故在这里对图像(.png .jpg .gif等)常见数据格式批量处理方法进行讲解:
- 依赖的库:
通常对图像处理使用OpenCV,和扫描路径文件os
import cv2
import os
若不存在cv2则在命令框敲以下命令进行安装:
pip install opencv-python
指定文件夹下图片扫描
os.listdir可以扫描指定文件夹下的所有文件,通常我们可以将图像文件夹的位置(绝对位置/或相对位置)传入该函数,再建立for循环,给OpenCV批量处理:
import cv2
import img_path
file_path = r'./path'
filename_list = os.listdir(file_path)
for image_path in filename_list:
img = cv2.imread(file_path + image_path) # 三通道图片
# or
img = cv2.imread(file_path + image_path, cv2.IMREAD_GRAYSCALE) # 单通道图片
# process part