沐神深度学习04-数据操作+数据预处理

1 常用的数据结构

image

image

2 创建数组

创建数组需要

  • 形状:例如3x4矩阵
  • 每个元素的数据类型:例如32位浮点数
  • 每个元素的值,例如全是0,或者随机数

3 数组的访问

image
这里注意时开区间[1:3,1:],这里后面一个数是开区间
然后这里[::3,::2]这个是带跳转的子区域,就是每三列,每两行取一个元素

加载数据、缺失值处理

import pandas as pd

data = pd.read_csv(data_file)
print(data)

image

注意,“NaN”项代表缺失值。为了处理缺失的数据,典型的⽅法包括插值法和删除法

  • 其中删除法是忽略缺失值或者删除缺失值所在行
  • 插值法用⼀个替代值弥补缺失值,比如说该列的均值

我们将考虑插值法。
通过位置索引iloc,我们将data分成inputs和outputs,其中前者为data的前两列,⽽后者为data的最后⼀列。
对于inputs中缺少的数值,我们⽤同⼀列的均值替换"NaN"项。
image

inputs["NumRooms"] = inputs["NumRooms"].fillna(inputs["NumRooms"].mean())
inputs

image
对于inputs中的类别值或离散值,我们将“NaN”视为⼀个类别。由于“巷⼦类型”(“Alley”)列只接受两
种类型的类别值“Pave”和“NaN”,pandas可以⾃动将此列转换为两列“Alley_Pave”和“Alley_nan”。巷
⼦类型为“Pave”的⾏会将“Alley_Pave”的值设置为1,“Alley_nan”的值设置为0。缺少巷⼦类型的⾏会
将“Alley_Pave”和“Alley_nan”分别设置为0和1。

pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None)
pandas 中的 get_dummies 方法主要用于对类别型特征做 One-Hot 编码(独热编码)。
1、Series里的整数会按照one-hot进行编码,但是在DataFrame里面不会
2、特征的维度数量会有所增加

inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

image

然后再将其转化成tensor,我们发现这个"Alley_Pave"和"Alley_nan"是True和False类型,所以我们需要转化成Float类型之后才能转化成tensor

inputs=inputs.astype('float')
inputs


X,y=torch.tensor(inputs.values),torch.tensor(outputs.values)
X,y

image

posted @ 2023-06-13 20:45  lipu123  阅读(30)  评论(0编辑  收藏  举报