《动手深度学习》2.2数据预处理

os.path.join(‘…’,‘data’)

os.path.join() 用于拼接文件路径:
  • 如果不存在以‘’/’开始的参数,则函数会自动加上
  • 如果存在以‘’/’’开始的参数,从最后一个以”/”开头的参数开始拼接,之前的参数全部丢弃。
>>> import os
>>> print(os.path.join('path','abc','yyy'))
path\abc\yyy
>>> print('1',os.path.join('aaa','/bbb','ccc.txt'))
1 /bbb\ccc.txt
 
>>> print('1',os.path.join('/aaa','/bbb','ccc.txt'))
1 /bbb\ccc.txt
 
>>> print('1',os.path.join('/aaa','bbb','ccc.txt'))
1 /aaa\bbb\ccc.txt
  • 同时存在以‘’./’与‘’/’’开始的参数,先看“/”,没有"/“时,则以”./"的上一个参数为开始位置。
>>> print('2',os.path.join('/aaa','./bbb','ccc.txt'))
2 /aaa\./bbb\ccc.txt
 
>>> print('2',os.path.join('aaa','./bbb','/ccc.txt'))
2 /ccc.txt
>>> print('2',os.path.join('aaa','./bbb','ccc.txt'))
2 aaa\./bbb\ccc.txt
  • 所以,一定要注意/的使用!!不该用时候别乱加!!比如下面例子:
 path='C:/yyy/yyy_data/'
>>> print(os.path.join(path,'/abc'))
C:/abc
>>> print(os.path.join(path,'abc'))
C:/yyy/yyy_data/abc
  • 继续课程中:
import os
os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
  • os.path.join(‘…’,‘data’)把data文件夹建在了系统的user目录下:

在这里插入图片描述
在这里插入图片描述

  • 若想更改文件位置则需手动输入文件路径:
path = 'E:/Coding/Jupyter/'
os.makedirs(os.path.join(path, 'data'), exist_ok=True)
data_file = os.path.join(path, 'data', 'house_tiny.csv')

在这里插入图片描述

加载数据集:pandas库 read_csv()

import pandas as pd
data = pd.read_csv(data_file)
print(data)

在这里插入图片描述

处理缺失数据

  • 常见方法——插值法、删除法: 通过位置索引iloc(就是index_location),将data分成inputs和outputs; inputs为data的前两列;
  • outputs为data的最 后一列。inputs中缺少的数值用同一列的均值替换
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.mean())
print(inputs)

在这里插入图片描述

  • 对于非数值列Alley:由于“Alley”列只有两种类型 “Pave”和“NaN”,pandas可以自动将此列转换为两列“Alley_Pave”和“Alley_nan”。原来为“Pave”的行会将“Alley_Pave”和“Alley_nan”的值设置为1和0。相应地,原来为“NaN”即缺省的行会将“Alley_Pave”和“Alley_nan”分别设置为0和1。
  • 即:对于inputs中的类别值或离散值,将“NaN”视为一个类别
  • get_dummies 是利用pandas实现one hot encode的方式,即将类别转化为0,1表示
inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

在这里插入图片描述

  • 把各列的数值类型转化成tensor张量
X, y = torch.tensor(inputs.values), torch.tensor(outputs.values)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值