动手学深度学习代码0402

import os
import pandas as pd
import torch
# 这里不需要加..,因为..会返回上一级目录创建data文件夹
# os.makedirs(os.path.join('..','data'),exist_ok=True)
os.makedirs(os.path.join('data'), exist_ok=True)
# CSV 是逗号分隔值的意思
data_file = os.path.join('data','house_tiny.csv')
# open函数返回一个文件对象,赋值给f
# with格式,确保文件自动保存关闭
# 如果data下house_tiny.csv文件不存在,open() 函数会自动创建一个新的空文件;
# 当文件已经存在时:它会立即**清空(Truncate)**该文件中所有已存在的内容,重新写新内容
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')


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

inputs = data.iloc[:,0:2]
outputs = data.iloc[:,2]
# 计算 inputs 中所有数值类型列的平均值 
# 由于 Alley 列没有计算出平均值,所以 fillna 不会改变 Alley 列中的 NaN
inputs = inputs.fillna(inputs.mean())

print(inputs)
# dummy_naTrue 时,get_dummies 会将 NaN 也视为一个独立的类别,并为它创建一个专门的指示列
inputs = pd.get_dummies(inputs,dummy_na=True)
print(inputs)

# 将inputs和outputs都是数值,转化为tensor
# 原始的inputs是pandas.DataFrame数据类型
inputs_tensor = torch.tensor(inputs.to_numpy(dtype=float))
outputs_tensor = torch.tensor(outputs.to_numpy(dtype=float))
# 但是这里默认是64位,但64位比较慢,一般用24位
print(inputs_tensor)
print(outputs_tensor)

输出

   Numrooms Alley   Price
0       NaN  PAVE  127500
1       2.0   NaN  106000
2       4.0   NaN  178100
3       NaN   NaN  140000
   Numrooms Alley
0       3.0  PAVE
1       2.0   NaN
2       4.0   NaN
3       3.0   NaN
   Numrooms  Alley_PAVE  Alley_nan
0       3.0           1          0
1       2.0           0          1
2       4.0           0          1
3       3.0           0          1
tensor([[3., 1., 0.],
        [2., 0., 1.],
        [4., 0., 1.],
        [3., 0., 1.]], dtype=torch.float64)
tensor([127500., 106000., 178100., 140000.], dtype=torch.float64)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值