002 Pytorch数据预处理

为了能用深度学习来解决现实世界的问题,我们经常从预处理原始数据开始, 而不是从那些准备好的张量格式数据开始。

首先我们准备一个人工数据集:

 这是一个.csv格式(用逗号隔开)的数据文件。该数据集有四行三列。其中每行描述了房间数量(“NumRooms”)、巷

子类型(“Alley”)和房屋价格(“Price”)。

1. 读取数据集

要从创建的CSV文件中加载原始数据集,我们导入pandas包并调用read_csv函数。

 pd.read_csv()接收一个csv文件(以路径表示)作为参数,将这个csv文件中的数据读取出来。

2. 处理缺失值

注意,“NaN”项代表缺失值。 为了处理缺失的数据,典型的方法包括插值法删除法, 其中插值法用一个替代值弥补缺失值,而删除法则直接忽略缺失值。 在这里,我们将考虑插值法。

通过位置索引iloc,我们将data分成inputsoutputs, 其中前者为data的前两列,而后者为data的最后一列。 对于inputs中缺少的数值,我们用同一列的均值替换“NaN”项。

注意:1. data.iloc[]用于访问读进来的csv数据的索引。这个读进来的数据是不能直接用[]进行索引访问的,要使用data.iloc[]进行索引访问。

     2. 读进来的csv数据的保存对象(这里是inputs,outputs)的fillna方法可以处理缺失值,inputs.fillna(inputs.mean())表示用平均的方法处理inputs中的缺失值。

 

对于inputs中的类别值或离散值,我们将“NaN”视为一个类别。 由于“巷子类型”(“Alley”)列只接受两种类型的类别值“Pave”和“NaN”, pandas可以自动将此列转换为两列“Alley_Pave”和“Alley_nan”。 巷子类型为“Pave”的行会将“Alley_Pave”的值设置为1,“Alley_nan”的值设置为0。 缺少巷子类型的行会将“Alley_Pave”和“Alley_nan”分别设置为0和1。

 

3. 转换为张量格式

上面的inputs及outputs不能直接使用torch.tensor(inputs)或torch.tensor(outputs)转换成tensor,要使用inputs.values以及outputs.values.

 

本文转载于网络 如有侵权请联系删除

相关文章

  • 基础:在 Linux 终端中删除文件和文件夹

    要想使用图形化界面删除计算机上的文件,你可能会直接将文件或文件夹拖拽到“垃圾箱”或“回收站”。或者你也可以选择要删除的文件或文件夹,右键单击并选择删除。而在终端中删除文件或文件夹时并没有垃圾箱一说(至少默认情况下没有)。在图形化桌面上,Trash(即垃圾箱文件夹)是一个受保护的目录,保护机制可以防止用户不小心将该目录删除,或将其从默认位置移动从而导致找不到它。Trash本质不过是一个被高度管理的文件夹,因此你可以创建自己的Trash文件夹以在终端中使用。为终端设置一个垃圾箱在家目录中创建一个名为Trash的目录:$mkdir~/Trash复制删除文件要删除文件或文件夹时,使用mv命令将文件或文件夹移至Trash中:$mvexample.txt~/Trash复制永久删除文件或文件夹当你准备从系统中永久删除某个文件或文件夹时,可以使用rm命令清除垃圾箱文件夹中的所有数据。通过将rm命令指向星号(*),可以删除Trash文件夹内的所有文件和文件夹,而不会删除Trash文件夹本身。因为用户可以方便且自由地创建目录,所以即使不小心删除了Trash文件夹,你也可以再次新建一个。$rm--recur

  • springboot 如何优雅的抛出异常

    之前项目的异常是一层一层抛出去及其麻烦,并且每个层都要trycatch然后把错误信息包装返回到最顶层,从service一层一层抛出去。人都写傻了,后面发现了springboot项目有全局拦截器。还是看的太浅了,先随便创建一个全局拦截MyControllerAdvice.java复制/** *controller增强器 */ @ControllerAdvice publicclassMyControllerAdvice{ /** *全局异常捕捉处理 *@paramex *@return */ @ResponseBody @ExceptionHandler(value=RrException.class) publicResulterrorHandler(RrExceptionex){ returnResult.error(ex.getMessage()); } }复制其中的RrException是我自定义的异常因为我自己要抛出但是Exception又需要捕捉,而自定义的错误就不用异常类RrException.class/** *自定义异常 *@authorzyc */ publiccl

  • 我赌你不清楚Spring中关于Null的这些事

    推荐阅读(点击即可跳转阅读)1.淘宝服务端高并发分布式架构演进之路2.IntelliJIDEA从入门到上瘾教程,2019图文版!3.高并发场景下缓存处理的一些思路4.权限设计的一些想法和思考之前一直在某些代码中看到过使用@Nullable标注过的注释,当时也没有在意到底是什么意思,之后忍不住去调查一番,这篇文章来谈谈Spring中关于Null的那些事。在Java中不允许你使用类型表示其null的安全性,但SpringFramework现在在org.sprinngframework.lang包提供以下注释,以便声明API和字段的可空性:@Nullable:用于指定参数、返回值或者字段可以作为null的注释。@NonNull:与上述注释相反,表明指定参数、返回值或者字段不允许为null。(不需要@NonNullApi和@NonNullFields适用的参数/返回值和字段)@NonNullApi:包级别的注释声明非null作为参数和返回值。@NonNullFields:包级别的注释声明字段默认非空SpringFramework本身利用了上面这几个注释,但它们也可以运用在任何基于Spring的

  • java 学习路线

    java基础注:这里的java基础只是一些简单的语法和Java特性,对于线程这些高级的内容可以在写过一些项目后回头来巩固一下 首先去找一个Java的基础教程学一下,对于java基础你不要想着一开始就可以弄懂。第一次学习java基础你需要看着视频或者看书把代码敲出来看到效果就可以了,一定要敲代码,一定要敲代码,一定要敲代码!!!你只是看书或者看视频不去动手实操,那么你的学习效率其实是最低下的。别觉得自己看书或者看视频觉得懂了就可以偷懒,对于编程来说,你没有实战只想理论,那么我想当你真正自己想做一个小项目时就会束手无策。java基础视频,业界比较认可毕向东的视频。视频链接:https://pan.baidu.com/s/1bpD3P07#list/path=%2F学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。学完以上内容以后,你应该对Java有一个基本的了解了,现在你可以大展拳脚了。学习java基础可能会让你无聊,但是在你学完之后你就可以开发一些自己平时用的小工具了。比如计算器、坦克大战、贪吃蛇、五子棋等,通过

  • 从工业4.0到营销4.0

    周日下午,有幸得到了周老师的邀请,回学校参加了日本著名教授——新津重幸先生的讲座。天有些冷,但自己感受到了冬日暖阳。 在曾经上课的教学楼里,同学们再次聆听先生们的教诲,周老师还是那样的儒雅和蔼,为我们做了全程的翻译。 教授从时间维度详细的阐述了日本产业革命与市场营销的战略性变革,视角宏大,受益匪浅。 日本的第一次产业革命是从1950年到1980年,大约经历了30年,构建大体量的销售体系,采用的是追求上游的市场营销。后期出台了“公害防治法”,开始注重生态环境的改变。我们从什么时候开始的呢,大概是1978年么? 日本的第二次产业革命是从1980年到1990年,大约经历了10年,建立了FMS的生产体系,开始确立市场目标的细分方法,通过货物X事情,确定物品主导型生活场景化方法论,业态开始细分,连锁企业发达,采用的是追求下游的市场营销,形成时间消费型的消费方式。我们从什么时候开始的呢,大概是2000年么? 日本的第二次产业革命是从1990年到2010年,又是大约20年的时光,追求的是生活创造型的市场营销。从口碑营销到面向数据以及信息网络型的市场营销,确立了物流系统化和小额、共同配送系统,背后追求

  • 腾讯AI Lab开源世界首款自动化模型压缩框架PocketFlow:将深度学习装进口袋

    导语:腾讯AILab机器学习中心今日宣布成功研发出世界上首款自动化深度学习模型压缩框架——PocketFlow,并即将在近期发布开源代码。这是一款面向移动端AI开发者的自动模型压缩框架,集成了当前主流(包括腾讯AI Lab自研)的模型压缩与训练算法,结合自研超参数优化组件实现了全程自动化托管式的模型压缩与加速。[1] 开发者无需了解具体算法细节,即可快速地将AI技术部署到移动端产品上,实现用户数据的本地高效处理。目前该框架正在为腾讯的多项移动端业务提供模型压缩与加速的技术支持,在多款手机APP中得到应用。 1.PocketFlow背景随着AI技术的飞速发展,越来越多的公司希望在自己的移动端产品中注入AI能力,以优化用户使用体验。以深度学习为代表的AI技术极大地提升了图像理解、语音识别等诸多应用领域中的识别精度,但是主流的深度学习模型往往对计算资源要求较高,难以直接部署到消费级移动设备中。常用的解决方案是将复杂的深度学习模型部署在云端,移动端将待识别的数据上传至云端,再等待云端返回识别结果,但这对网络传输速度的要求较高,在网络覆盖不佳地区的用户使用体验较差,同时数据上传至云端后的隐私性也

  • LWC 60:733. Flood Fill

    LWC60:733.FloodFill传送门:733.FloodFillProblem:Animageisrepresentedbya2-Darrayofintegers,eachintegerrepresentingthepixelvalueoftheimage(from0to65535). Givenacoordinate(sr,sc)representingthestartingpixel(rowandcolumn)ofthefloodfill,andapixelvaluenewColor,“floodfill”theimage. Toperforma“floodfill”,considerthestartingpixel,plusanypixelsconnected4-directionallytothestartingpixelofthesamecolorasthestartingpixel,plusanypixelsconnected4-directionallytothosepixels(alsowiththesamecolorasthestartingpixel),an

  • vue3+vite的项目创建

    vite项目的创建加快了打包和执行项目的速度,但是在创建项目的时候不像vue-cil那样方便的直接应用vue全家桶,创建vite项目后还需要单独引入相关的插件 1、vue3+vite2 2、TypeScript、TSX 3、ESLintStandard 4、Sass 5、VueRouter 6、Pinia原vue2中的Vuex(状态管理) 7、ElementPlus(含图标全局注册) 复制 1、创建项目 可以直接创建vite项目,选择vue即可,我这里用的yarn创建的(yarn在下载插件时,据说比npm稳定和快) yarncreatevite 复制 1.1、命名项目名 可以自己输入对应的项目名 1.2、选择框架 在选择框架时,还会有其他的框架可供选择 1.3、选择编译语言 1.4、进入项目-安装依赖-运行 依次按照下面的顺序执行对应程序 2、项目配置 2.1添加编辑器配置文件 在根目录下添加编辑器配置文件:.editorconfig [*.{js,jsx,ts,tsx,vue}] indent_style=space indent_size=2 trim_trailing_w

  • poj_1458 LCS problem F.最长上升公共子序列

    Description Asubsequenceofagivensequenceisthegivensequencewithsomeelements(possiblenone)leftout.GivenasequenceX=<x1,x2,...,xm>anothersequenceZ=<z1,z2,...,zk>isasubsequenceofXifthereexistsastrictlyincreasingsequence<i1,i2,...,ik>ofindicesofXsuchthatforallj=1,2,...,k,x ij =zj.Forexample,Z=<a,b,f,c>isasubsequenceofX=<a,b,c,f,b,c>withindexsequence<1,2,4,6>.GiventwosequencesXandYtheproblemistofindthelengthofthemaximum-lengthcommonsubsequenceofXandY. I

  • spring读取classpath目录下的配置文件通过表达式去注入属性值.txt

    spring读取配置文件:1.spring加载配置文件:<context:property-placeholderlocation="classpath:config/system.properties"/>2.配置文件内容:YTZ_SPECIAL_USER_PHONE=13912622596,18721293900,18656253360YTZ_SPECIAL_USER_PHONE2=13912622596,18721293900,186562533603.通过spring去注入属性值.//读取配置文件中特殊权限的用户名和手机号@Value("${YTZ_SPECIAL_USER_NAME}")privateStringytzSpecialUserName;来自为知笔记(Wiz)

  • Vue中qs插件的使用

    在登录时使用axios请求数据传参时无法正常的获取数据。 这里使用了qs插件: 简单来说,qs是一个增加了一些安全性的查询字符串解析和序列化字符串的库。 在项目中使用命令行工具输入:npminstallqs安装完成后在需要用到的组件中:importqsfrom'qs’具体使用中我查看了:qs.parse()和qs.stringify() 这两种方法虽然都是序列化,但是还是有区别的。qs.parse()是将URL解析成对象的形式qs.stringify()是将对象序列化成URL的形式,以&进行拼接 解决我遇到的问题我使用了qs.stringify()直接上图,一个简单的请求登录示例 另外qs还不止这点本事,这里附上一个详细的文档,感兴趣的话可以去看一看 参考一 https://blog.csdn.net/sansan_7957/article/details/82227040   参考二 https://blog.csdn.net/q290057637/article/details/104544757  

  • Vue + Element UI 实现权限管理系统 前端篇(三):工具模块封装

    封装axios模块 封装背景 使用axios发起一个请求是比较简单的事情,但是axios没有进行封装复用,项目越来越大,会引起越来越多的代码冗余,让代码变得越来越难维护。所以我们在这里先对axios进行二次封装,使项目中各个组件能够复用请求,让代码变得更容易维护。 封装要点 统一url配置 统一api请求 request(请求)拦截器,例如:带上token等,设置请求头 response(响应)拦截器,例如:统一错误处理,页面重定向等 根据需要,结合Vuex做全局的loading动画,或者错误处理 将axios封装成Vue插件使用 文件结构 在src目录下,新建一个http文件夹,用来存放http交互api代码。 config.js:axios默认配置,包含基础路径等信息。axios.js:二次封装axios模块,包含拦截器等信息。interface.js :请求接口汇总模块,聚合模块API。index.js:将axios封装成插件,按插件方式引入。 config.js exportdefault{ method:'get', //基础url前缀 baseURL:'h

  • 金钟花

    金钟花 拉丁学名:ForsythiaviridissimaLindl. 别称:黄金条,单叶连翘,狭叶连翘,迎春条,细叶连翘 木犀科、植物界   主要价值:   2、园林   黄金条先叶而花,金黄灿烂,可丛植于草坪、墙隅、路边、树缘,院内庭前等处。可丛植,也可片植;是春季良好的观花植物。   1、药用   清热;解毒;散结   生长环境:   喜光照,又耐半阴;还耐热、耐寒耐旱、耐湿;在温暖湿润、背风面阳处,生长良好。在黄河以南地区夏季不需遮荫,冬季无需入室。对土壤要求不严,盆栽要求疏松肥沃,排水良好的沙质土。多生长在海拔500米至1000米的沟谷、林缘与灌木丛中。   产地分布:   产于江苏、安徽、浙江、江西、福建、湖北、湖南、云南西北部。生山地、谷地或河谷边林缘,溪沟边或山坡路旁灌丛中,海拔300-2600米。除华南地区外,全国各地均有栽培,尤以长江流域一带栽培较为普遍。最初是根据栽种在我国庭园中的植物发表的。  

  • [原]unity5 AssetBundle 加载

    本文unity版本5.1.3 一、现有的打包教程: 1、http://liweizhaolili.blog.163.com/blog/static/16230744201541410275298/ 阿赵 2、http://docs.unity3d.com/Manual/BuildingAssetBundles5x.html 官方 3、http://www.it165.net/pro/html/201506/43896.html    

  • 2019 英语作文二

      thechartsclearlydemonstratestheproportionof what collegestudentschoosetodoaftergraduation inacertain universityintheyear2013and2018respectively. Accordingtothedatagiven,wecaneasilynoticethattheproportionofstudentswho seektheiremploymentaftergraduationwitnessesadecline. Comparedwith2013,therearemorestudentswhointendtopursuetheirpostgraduate studyorwanttostarttheir ownbusinessin2018.   Itisnodifficultytocomeup withsomereasons responsibleforthephenome

  • watch 首次监听不到的问题

    在vue中会使用很多子组件,有时因为组件的类型的等原因会导致数据监听不到的情况 1、首次监听不到时 可以使用immediate方法,其值是true或false;immediate:true代表如果在wacth里声明了之后,就会立即执行里面的handler方法 watch:{   contractFile:{      immediate:true,        handler:function(newval){            this.operations(newval)       }}},   2、子组件的深度监听函数【deep】,其值是true或false;确认是否深入监听。deep的意思就是深入观察,监听器会一层层的往下遍历,给对象的所有属性都

  • NOPI Excel 读取公式生成后的数据

    usingNPOI.HSSF.UserModel; usingNPOI.SS.UserModel; usingNPOI.XSSF.UserModel; usingSystem; usingSystem.Collections.Generic; usingSystem.Data; usingSystem.IO; usingSystem.Linq; usingSystem.Web; namespacePortalPBIRS.Models { classExcelHelper:IDisposable { privatestringfileName=null;//文件名 privateIWorkbookworkbook=null; privateFileStreamfs=null; privatebooldisposed; readonlyintEXCEL03_MaxRow=65535; publicExcelHelper(stringfileName) { this.fileName=fileName; disposed=false; } ///<summary> ///将e

  • 关于python引入文件路径的解决办法

      若Python项目路径如此,需要在在a.py,b.py中引入FILE文件时,且无须知道绝对路径的情况下 approot.py importos defget_root(): returnos.path.dirname(os.path.abspath(__file__))复制 a.py importapproot print(approot.get_root()+'/FILE/file1.txt')复制 通过这种方式始终得到的是项目所在的绝对路径 当然除此之外也可以通过其他当时获得项目的根路径  

  • JSONObject参数递归转换

    importcom.alibaba.fastjson.JSONArray; importcom.alibaba.fastjson.JSONObject; importorg.slf4j.Logger; importorg.slf4j.LoggerFactory; importjava.util.List; importjava.util.Set; /** *@description:JSONObject参数递归转换 *@author:huangwei *@create:2020-12-0211:50 */ publicclassJsonTrans{ /** *日志对象 */ privatestaticfinalLoggerLOG=LoggerFactory.getLogger(JsonTrans.class); publicstaticvoidmain(String[]args){ //要转换的参数对象 StringresponseStr="{\"ret\":\"0\",\"count\":1,\"retMsg\":null,\"processCost\":null,\"data\

  • 日历插件 备忘

    <!DOCTYPEhtml> <html> <head> <metacharset="UTF-8"> <title>纯JS日历插件(注释全)</title> </head> <body> <inputtype="text"style="border:1pxsolid#999;"onclick="fPopCalendar(event,this,this)"onfocus="this.select()"readonly="readonly"/> </body> </html> <scripttype="text/javascript"> vargMonths=newArray("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"); varWeekDay=newArray("日","一","二","三","四","五","六"); varstrToday="今天"; var

  • 写了一个百度网盘资源搜索程序

    一、引言   古语有云:“活到老学到老”。表达出一种“生命不止,学习不止”的学习进取精神,是一种乐观的激励!作为程序员更应该如此,否则就会被淘汰。今天我所要讲的不是如何去学习,而是怎么在网上找到我们所需求的资源。   二、百度网盘搜索方法   找资源的方法有很多,如:百度,谷歌搜索。而我讲的是如何搜索“百度网盘”里面的资源。   具体方法:在搜索引擎中搜索:site:pan.baidu.com关键词,如下图。亲测必应,谷歌可以。        三、写了一个程序   为了自己搜索方便,索性写了一个程序去爬取必应的搜索结果,如下图。演示地址:http://pan.tianyouduo.com      四、程序介绍   1、通过抓包工具,分析必应搜索的url,如下图。我们最终可以获取到:http://cn.bing.com/search?q=关键词&first=第几条开始    2、向此url(http://cn.bing.com/search?q=site:pan.baidu.com关键词&first=第几条开始)发起Ht

相关推荐

推荐阅读