李沐动手学深度学习-04数据操作+数据预处理

李沐动手学深度学习-CH04

数据操作的实现

这边的内容感觉不太需要记录,所以就没有写了,忘记了就查找一下嘛。只是简单记录

值得注意的是如果向量形状不一样,他会有一个广播机制,当然这个广播机制的使用也是有一定条件的(可扩展)

A = X.numpy()   # 转换成Numpy张量
B = torch.tensor(A) # 重新转换为torch

创建CSV文件

通过python的os库我们可以创建对应的CSV文件,f.write里面的会分割每一个值,放置到不同的单元格中去

import torch
import os
import pandas as pd

if __name__ == '__main__':
    # 这里创建了data文件夹,如果要到上一级目录里面去可以‘..’,exist_ok表示如果存在也没关系
    # 例如os.makedirs(os.path.join(‘..', 'data'),exist_ok=True)
    os.makedirs(os.path.join('data'),exist_ok=True)
    data_file = os.path.join('data', 'test.csv')

    with open(data_file, 'w') as f:
        f.write('NumRoons,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')

从CSV文件中加载数据集并处理

读取csv文件我们使用pandas库,是比较方便的。

data_file = os.path.join('data', 'test.csv')
data = pd.read_csv(data_file)
print(data)

print出来会看到一些NaN的数据缺失,所以我们需要对数据继续一个简单的处理

data_file = os.path.join('data', 'test.csv')
data = pd.read_csv(data_file)
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]    # 这里就是选取指定的行列,如果出现越界情况的话看一下csv文件的行列,数据类型
inputs = inputs.fillna(inputs.mean())   # 这里是把NA值,填称不是NA值的平均值,仅仅针对数值,左边
inputs = pd.get_dummies(inputs, dummy_na=True)  # 这就对字符串的那种单元格进行了处理。具体看截图,右边
x, y = torch.tensor(inputs.values), torch.tensor(outputs.values)
print(x,y)

数值处理李沐动手学深度学习-04数据操作+数据预处理_第1张图片
字符处理李沐动手学深度学习-04数据操作+数据预处理_第2张图片值得注意的是,python数据类型默认是float64,但是以后为了能够更快的完成运算一般都会使用float32

你可能感兴趣的:(李沐深度学习,python,pytorch,深度学习)