翻译: 2.2 Pandas Pytorch 数据预处理 深入神经网络
到目前为止,我们已经介绍了多种技术来处理已经存储在张量中的数据。为了将深度学习应用于解决现实世界的问题,我们通常从预处理原始数据开始,而不是那些精心准备的张量格式数据。在 Python 中流行的数据分析工具中,pandas包是常用的。与庞大的 Python 生态系统中的许多其他扩展包一样, pandas可以与张量一起使用。因此,我们将简要介绍预处理原始数据pandas并将其转换为张量格式的步骤。我们将在后面的章节中介绍更多的数据预处理技术。
2.2.1 读取数据集
例如,我们首先创建一个人工数据集,该数据集存储在 csv(逗号分隔值)文件…/data/house_tiny.csv中。以其他格式存储的数据可以以类似的方式处理。
下面我们将数据集逐行写入一个csv文件。
import osos.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\n') # Column namesf.write('NA,Pave,127500\n') # Each row represents a data examplef.write('2,NA,106000\n')f.write('4,NA,178100\n')f.write('NA,NA,140000\n')
为了从创建的 csv 文件加载原始数据集,我们导入 pandas包并调用read_csv函数。该数据集有四行三列,其中每一行描述了房间的数量(“NumRooms”)、小巷类型(“Alley”)和房子的价格(“Price”)。
# If pandas is not installed, just uncomment the following line:
# !pip install pandas
import pandas as pddata = pd.read_csv(data_file)
print(data)
NumRooms Alley Price
0 NaN Pave 127500
1 2.0 NaN 106000
2 4.0 NaN 178100
3 NaN NaN 140000
2.2.2 处理缺失数据
请注意,“NaN”条目是缺失值。为了处理缺失数据,典型的方法包括插补和删除,其中插补用替换值替换缺失值,而删除忽略缺失值。在这里,我们将考虑插补。
iloc通过基于整数位置data的 索引inputs(outputs对于缺失的数值 inputs,我们将“NaN”条目替换为同一列的平均值。
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
print(inputs)
print(outputs)
inputs = inputs.fillna(inputs.mean())
print(inputs)
NumRooms Alley
0 NaN Pave
1 2.0 NaN
2 4.0 NaN
3 NaN NaN
0 127500
1 106000
2 178100
3 14000
Name: Price, dtype: int64NumRooms Alley
0 3.0 Pave
1 2.0 NaN
2 4.0 NaN
3 3.0 NaN
对于 中的分类或离散值inputs,我们将“NaN”视为一个类别。由于“Alley”列只取“Pave”和“NaN”两种分类值,pandas可以自动将该列转换为“Alley_Pave”和“Alley_nan”两列。巷道类型为“Pave”的行会将“Alley_Pave”和“Alley_nan”的值设置为 1 和 0。缺少巷道类型的行会将其值设置为 0 和 1。
inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)
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
2.2.3 转换为张量格式
现在inputs和中的所有条目outputs都是数字的,它们可以转换为张量格式。一旦数据采用这种格式,就可以使用我们在第 2.1 节中介绍的张量功能进一步处理它们。
import torchX, y = torch.tensor(inputs.values), torch.tensor(outputs.values)
X, y
(tensor([[3., 1., 0.],[2., 0., 1.],[4., 0., 1.],[3., 0., 1.]], dtype=torch.float64),tensor([127500, 106000, 178100, 140000]))
2.2.4 概括
与庞大的 Python 生态系统中的许多其他扩展包一样, pandas可以与张量一起使用。
插补和删除可用于处理缺失数据。
2.2.5 练习
创建具有更多行和列的原始数据集。
删除缺失值最多的列。
print(data)
m = max(data.isnull().sum(axis=0))
print(m)
data_dropmaxnan = data.dropna(axis = 1, thresh = len(data)+1-m)
print(data_dropmaxnan)
NumRooms Alley Price
0 NaN Pave 127500
1 2.0 NaN 106000
2 4.0 NaN 178100
3 NaN NaN 14000
3NumRooms Price
0 NaN 127500
1 2.0 106000
2 4.0 178100
3 NaN 14000
将预处理后的数据集转换为张量格式。
1.The best way to read pytorch’s source code?Please give me some tips.
Here are some official API documents that may be helpful.
- https://pytorch.org/tutorials/beginner/ptcheat.html
- https://pytorch.org/docs/stable/index.html#
2. how to loop by dataframe’s colomns?I’m trying to use loop to calculate data.isnull().sum().
There are a vast amount of tutorials for pandas. You can just search online. Here is the official guide.
https://pandas.pydata.org/docs/user_guide/index.html#user-guide
参考
https://d2l.ai/chapter_preliminaries/pandas.html
翻译: 2.2 Pandas Pytorch 数据预处理 深入神经网络相关推荐
- python数据预处理案例_对pandas进行数据预处理的实例讲解
参加kaggle数据挖掘比赛,就第一个赛题Titanic的数据,学习相关数据预处理以及模型建立,本博客关注基于pandas进行数据预处理过程.包括数据统计.数据离散化.数据关联性分析 引入包和加载数据 ...
- (第一篇)pytorch数据预处理三剑客之——Dataset,DataLoader,Transform
前言:在深度学习中,数据的预处理是第一步,pytorch提供了非常规范的处理接口,本文将针对处理过程中的一些问题来进行说明,本文所针对的主要数据是图像数据集. 本文的案例来源于车道线语义分割,采用的数 ...
- 深度之眼Pytorch打卡(九):Pytorch数据预处理——预处理过程与数据标准化(transforms过程、Normalize原理、常用数据集均值标准差与数据集均值标准差计算)
前言 前段时间因为一些事情没有时间或者心情学习,现在两个多月过去了,事情结束了,心态也调整好了,所以又来接着学习Pytorch.这篇笔记主要是关于数据预处理过程.数据集标准化与数据集均值标准差计算 ...
- Python应用实战-用pandas实现数据预处理
数据预处理常用的处理步骤,包括找出异常值.处理缺失值.过滤不合适值.去掉重复行.分箱.分组.排名.category转数值等,下面使用 pandas 解决这些最常见的预处理任务. 找出异常值常用两种方法 ...
- Python数据挖掘入门与实践 第三章 用决策树预测获胜球队(一)pandas的数据预处理与决策树(Decision tree)
作为一个NBA球迷,看到这一章还是挺激动的. 不过内容有点难,研究了半天... 要是赌球的,用这章的预测+凯利公式,是不是就能提升赢钱概率了? 数据预处理 回归书本内容,既然要分析,首先需要有数据: ...
- Pytorch 数据预处理
数据预处理 0. 环境介绍 环境使用 Kaggle 里免费建立的 Notebook 教程使用李沐老师的 动手学深度学习 网站和 视频讲解 小技巧:当遇到函数看不懂的时候可以按 Shift+Tab 查看 ...
- pytorch数据预处理
一,数据加载 数据路径: #coding:utf-8 import torch as t from torch.utils import data import os from PIL import ...
- Python—实训day9—使用pandas进行数据预处理
1合并数据 1.1堆叠合并数据 1.1.1横向堆叠(行对齐,左右拼接) 横向堆叠,即将两个表在X轴向拼接在一起,可以使用concat函数完成,concat函数的基本语法如下. pandas.conca ...
- Pandas常用数据预处理方法
1.日期格式转换 输入日期列为object.string类型,格式是"9/14/2021",需要转换成pandas中可计算的日期格式.实际运行后输出为"2021-09-1 ...
- 4.3 pytorch数据预处理:transforms图像增强方法
一.数据增强概述 二.数据增强方法:裁剪 三.数据增强方法:翻转和旋转 四.数据增强方法:变换 五.transforms方法的选择操作 一.数据增强概述 我们来看图片中的数据增强是怎么样的. 左边的图 ...
最新文章
- 自动化运维工具puppet(1)
- Android --- 新版本取色器吸管工具点击无效,没反应
- [hdu5203]计数水题
- Android开发之RecyclerView之刷新数据notifyDataSetChanged失败的问题
- 每日一题:leetcode1128.等价多米诺骨牌对数
- 枚举enum、NS_ENUM 、NS_OPTIONS
- linux笔记-硬链接和符号链接
- jq之animate()操作多个属性
- 操作系统知识点大总结【管程与死锁】
- 开源WEB服务器-lighttpd 1.4.24发布
- 2014年读过的那些书
- 微信小程序云开发之初体验(详细教程)
- mysql创建唯一非聚集索引_创建聚集索引、非聚集索引、唯一索引、唯一键约束...
- Linux 之 vim 使用
- 「魔窗」问题终于解决了
- 流体连续性方程【The Equation of Continuity】
- html制作唯品会登陆页面,唯品会网页登陆页面高清,唯品会网页版登陆页面,唯品会网页登陆页面...
- idea 流程图出现 Condition \n
- 余三码的意义和加法运算
- 超详细的VMware虚拟机安装Linux图文教程保姆级
热门文章
- @DateTimeFormat 和 @JsonFormat 注解的区别和使用
- mysql站内搜索_纯php+mysql打造的站内搜索
- titanic数据集_数据可视化泰坦尼克号图表预测
- linux系统火狐浏览器加速,火狐浏览器加速的几个设置
- ASP.NET MVC中Area的另一种用法
- C# Maximum request length exceeded. 产生错误的原因,以及解决方法.
- Asp.Net细节性问题精萃[转]
- CentOS 安装rz和sz命令
- 用CALayer实现下载进度条
- 批处理处理oracle数据库脚本导入