跟着沐神学深度学习---从入门到放弃的第1天

跟着沐神学深度学习—从入门到放弃的第1天

1.数据预处理

预处理原始数据,并将原始数据转换为张量格式的步骤。在这一部分中,我们主要学习了读取数据以及对数据进行处理的操作方法。包括:在指定路径创建文件夹并进行写入文件 、对缺失数据进行填充

2. 知识点

os.makedirs[用于创建一个文件夹]
os.path.join[创建指定路径]

1.2 代码

import os
os.makedirs(os.path.join('.', 'data'), exist_ok=True)
data_file = os.path.join('.', 'data', 'house_tiny.csv')
# print(data_file)
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')

# 读取数据集
import pandas as pd
import numpy as np
import torch

data = pd.read_csv("./data/house_tiny.csv", encoding="utf8")
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
# inputs = inputs.fillna(inputs.mean())
# print(inputs)
for i in range(2):
  try:
    b = inputs.iloc[:, i].mean()
    inputs.iloc[:, i] = inputs.iloc[:, i].fillna(b)
  except TypeError:
    print("里面含有字符串类型数据")
    inputs.iloc[:, i] = inputs.iloc[:,i].fillna("NaN")
# print(inputs)
inputs = pd.get_dummies(inputs, dummy_na=False, dtype=np.int64)
# print(inputs.astype(float))
print(inputs)

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

1.3 课后练习题目

要求:创建一个csv文件,向其进行写入数据,并寻找其中含有最多NaN数据的列,并将其进行删除。

import os
import pandas as pd, torch

#
# # 创建一个文件夹
os.makedirs(os.path.join(".", "练习"), exist_ok=True)
# 创建一个excel文件
file_path = os.path.join(".", "练习", "text.csv")
code_type = "gbk"
file_path.encode(code_type)
with open(file_path, "w") as f:
  f.write("姓名,成绩,排名\n")
  f.write("张三,100,1\n")
  f.write("李四,NA,2\n")
  f.write("NA,98,3\n")
  f.write("NA,97,4\n")
  f.write("田七,NA,5\n")
  f.write("王五,NA,6\n")
# -----------进行数据处理----------------
# 读取数据
data = pd.read_csv("./练习/text.csv", encoding="gbk")
print(id(data))
# 将数据分为两类:输入数据和输出数据
inputdata,outputdata=data.iloc[:,0:2],data.iloc[:,2]
print(inputdata,outputdata)
b = data.isna().sum().idxmax()
print(b)
# print(data.drop(b, axis=1))
data= data.drop(b, axis=1)#删除包含最多nan的列
print(data)

2.特别篇

2.1可变数据以及不可变数据

可变数据类型列表、字典、集合
不可变数据类型整形、元组、字符串
不可变数据类型就是这个类型的内存地址所对应的数据是不可以修改的
可变数据类型就是内存⼀旦定义好是否可以再次修改

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanxiaoyu110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值