【动手学深度学习】整理每个课时对应的练习

04 数据操作 + 数据预处理【动手学深度学习v2】

数据操作对应文件夹为:notebooks/pytorch/chapter_preliminaries/ndarray.ipynb

数据操作练习:

练习1

import torch
X = torch.arange(12, dtype=torch.float32).reshape((3,4))
Y = torch.tensor([[2.0,1,4,3],[1,2,3,4],[4,3,2,1]])
X,Y,X==Y,X<Y,X>Y

Jupyter中运行结果:

 

练习2:

        广播机制可以对两个张量进行对齐的规则是:会对两个张量从最后一个维度开始往前对比,对于两个张量的每一维,都需要满足以下三个条件之一:维度相等/其中一个维度是1/某一方没有这个维度(此时可以补1),否则则不能进行广播。

        三个张量的广播同理,三个张量被对比的维度也需要满足,维度相等,或者其中两个相等另一个为1,或者另外两个为1。

import torch
X = torch.arange(18).reshape(2,3,3)
Y = torch.arange(3).reshape(1,1,3)
X,Y,X+Y,(X+Y).shape

import torch
X = torch.arange(18).reshape(2,3,3)
Y = torch.arange(3).reshape(1,1,3)
Z = torch.arange(3).reshape(1,3,1)
X,Y,Z,X+Y+Z,(X+Y+Z).shape

运行结果:

数据预处理对应文件夹为:notebooks/pytorch/chapter_preliminaries/pandas.ipynb

数据预处理练习:

import os
import pandas as pd
import torch
import numpy as np

#创建包含更多行和列的原始数据集
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,Distanc,Area\n')#列名
    f.write('NA,Pave,127500,67,132\n')# 每行表示一个数据样本
    f.write('2,NA,106000,100,NA\n')
    f.write('4,NA,178100,NA,175\n')
    f.write('NA,NA,140000,NA,NA\n')
    f.write('5,NA,23400,15,234\n')
    f.write('16,Pave,60000,2,350')
    
#删除缺失值最多的列
#先读取数据
df = pd.read_csv(data_file)
#统计每一列的缺失值数值
na_count = df.isna().sum()
#找出缺失值最多的那一列的列名
most_na_count = na_count.idxmax()
#删除这一列
df = df.drop(columns = most_na_count)


#将预处理之后的数据转换成张量形式
#处理缺失值
df = df.fillna(df.mean())
#转换为张量
tens = torch.tensor(df.to_numpy(dtype=np.float32))

print(df)
tens

运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值