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

news2024/11/24 5:13:27

数据操作 + 数据预处理

  • 1.数据操作
    • 运行结果
  • 2.数据预处理实现
    • 运行结果

第四课链接

1.数据操作

import torch
# 张量的创建
x1 = torch.arange(12)
print('1.有12个元素的张量:\n',x1)
print('2.张量的形状:\n',x1.shape)
print('3.张量中元素的总数:\n',x1.numel())

y1=x1.reshape((3,4)) # 改变一个张量的形状而不改变元素数量和元素值
print('4.改变形状后的张量\n',y1)

z=torch.zeros((2,3,4))
print('5.全0张量\n',z)  # 创建一个张量,其中所有元素都设置为0
w=torch.ones((2,3,4))
print('6.全1张量\n',w)# 创建一个张量,其中所有元素都设置为1
q=torch.tensor([[1,2,3,4],[2,1,4,3],[2,3,4,1]])
print('7.特定值张量\n',q) # 通过提供包含数值的 Python 列表(或嵌套列表)来为所需张量中的每个元素赋予确定值

# 张量的运算

x=torch.tensor([1.0,2,4,8])
y=torch.tensor([2,2,2,2])
print('8.张量的运算,加减乘除求幂\n',x+y,x-y,x*y,x/y,x**y)  # **运算符是求幂运算
print('9.按元素做指数运算\n',torch.exp(x))

x2=torch.arange(12,dtype=torch.float32).reshape(3,4)
y2=torch.tensor([[2.0,1,4,3],[1,2,3,4],[4,3,2,1]])
print('10.连结:\n',torch.cat((x2,y2),dim=0),torch.cat((x2,y2),dim=1)) # 连结(concatenate) ,将它们端到端堆叠以形成更大的张量。
print('11.逻辑运算符 构建二元张量:\n',x2==y2) # 通过 逻辑运算符 构建二元张量
print('12.张量所有元素的和:\n',x2.sum()) # 张量所有元素的和

# 广播机制
a=torch.arange(3).reshape(3,1)
b=torch.arange(2).reshape(1,2)
print('13.广播机制:\n',a+b)

# 元素访问
x4=torch.arange(12,dtype=torch.float32).reshape(3,4)
print('14.元素访问:\n',x4[-1],x4[1:3])  # 用 [-1] 选择最后一个元素, 用 [1:3] 选择第二个和第三个元素]
x4[1,2]=9 # 写入元素。
x4[0:2,:]=12 # 写入元素。
print('15.写入元素:\n',x4)

#转换为其他python对象

a2= x.numpy()
print('16.转换为numpy张量:\n',type(a2))
b2=torch.tensor(a2)
print('17.转换为torch张量:\n',type(b2))

a3=torch.tensor([3.5])
print('18.转换为python标量:\n',a3,a3.item(),float(a3),int(a3))


运行结果

在这里插入图片描述
在这里插入图片描述

2.数据预处理实现

读取csv原始数据文件,做一定的预处理(处理缺失数据),再变为torch可用的tensor
csv:每一行是一个数据,域用逗号隔开
NA:未知的数
一般读取csv文件使用pandas库

import os
import pandas as pd
import torch
# 创建csv文件
os.makedirs(os.path.join('..','data'), exist_ok=True) # 在上级目录创建data文件夹
data_file=os.path.join('..','data','house_tiny.csv')  # 创建文件
with open(data_file,'w')as f: # 创建文件
    f.write('NumRooms,Alley,prince\n') #列名
    f.write('NA,Pave,127500\n') #每行表示一个数据样本
    f.write('2,NA,10600\n')
    f.write('4,NA,178100\n')
    f.write('NA,NA,140000\n') # 第4行的值
# 加载CSV文件
data=pd.read_csv(data_file)
print('1.原始数据:\n',data)

# 数据预处理,处理缺失的数据(插值)

inputs,outputs=data.iloc[:,0:2],data.iloc[:,2]
#数值预处理
inputs=inputs.fillna(inputs.mean()) # 用均值填充NaN
#非数值预处理
# 利用pandas中的get_dummies函数来处理离散值或者类别值。
# [对于 inputs 中的类别值或离散值,我们将 “NaN” 视为一个类别。] 由于 “Alley”列只接受两种类型的类别值 “Pave” 和 “NaN”
inputs=pd.get_dummies(inputs,dummy_na=True)

print('2.预处理后的数据:\n',inputs)


x,y=torch.tensor(inputs.values),torch.tensor(outputs.values)
print('3.转换为张量:\n',x,y)

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2244695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙HarmonyOS开发:一次开发,多端部署(工程级)三层工程架构

文章目录 一、工程创建1、先创建出最基本的项目工程。2、新建common、features、 products 目录 二、工程结构三、依赖关系1、oh-package.json52、配置ohpm包依赖 四、引用ohpm包中的代码1、定义共享资源2、在common模块index文件中导出3、在phone模块oh-package.json5文件中引…

NLP论文速读(EMNLP 2023)|工具增强的思维链推理

论文速读|ChatCoT: Tool-Augmented Chain-of-Thought Reasoning on Chat-based Large Language Models 论文信息: 简介: 本文背景是关于大型语言模型(LLMs)在复杂推理任务中的表现。尽管LLMs在多种评估基准测试中取得了优异的成绩…

uniapp vue3小程序报错Cannot read property ‘__route__‘ of undefined

在App.vue里有监听应用的生命周期 <script>// 只能在App.vue里监听应用的生命周期export default {onError: function(err) {console.log(AppOnError:, err); // 当 uni-app 报错时触发}} </script>在控制台打印里无意发现 Cannot read property ‘__route__‘ of …

第17章 子查询

一、介绍子查询 1.1 介绍 子查询指一个查询语句嵌套在另一个查询语句内部的查询&#xff0c;这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力&#xff0c;因为很多时候查询需要从结果集中获取数据&#xff0c;或者需要从同一个表中先计算得出一…

蓝队技能-应急响应篇日志自动采集日志自动查看日志自动化分析Web安全内网攻防工具项目

知识点&#xff1a; 1、应急响应-系统日志收集-项目工具 2、应急响应-系统日志查看-项目工具 3、应急响应-日志自动分析-项目工具 演示案例-蓝队技能-工具项目-自动日志采集&自动日志查看&自动日志分析 系统日志自动采集-观星应急工具(Windows系统日志) SglabIr_Co…

【西瓜书】线性判别分析-LDA

线性判别分析&#xff08;Linear Discriminant Analysis&#xff0c;简称LDA&#xff09;是一种经典的线性学习方法。在二分类问题上&#xff0c;因为最早由Fisher提出&#xff0c;也称“Fisher判别分析”。 严格说来&#xff0c;LDA 与 Fisher判别分析稍有不同&#xff0c;LDA…

Photino:通过.NET Core构建跨平台桌面应用程序,.net国产系统

一、Photino.NET简介&#xff1a; 最近发现了一个不错的框架 Photino.Net 一份代码运行&#xff0c;三个平台 windows max linux &#xff0c;其中windows10,windows11,ubuntu 18.04,ubuntu 20.04 已测试均可以。mac 因为没有相关电脑没有测试。 github:https://github.com/t…

湘潭大学软件工程算法设计与分析考试复习笔记(四)

回顾 湘潭大学软件工程算法设计与分析考试复习笔记&#xff08;一&#xff09;湘潭大学软件工程算法设计与分析考试复习笔记&#xff08;二&#xff09;湘潭大学软件工程算法设计与分析考试复习笔记&#xff08;三&#xff09; 前言 现在是晚上十一点&#xff0c;我平时是十…

Python毕业设计选题:基于python的豆瓣电影数据分析可视化系统-flask+spider

开发语言&#xff1a;Python框架&#xff1a;flaskPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统首页 个人中心 管理员登录界面 管理员功能界面 电影管理 用户管理 系统管理 摘要…

小程序租赁系统开发为企业提供高效便捷的租赁服务解决方案

内容概要 在这个数字化飞速发展的时代&#xff0c;小程序租赁系统应运而生&#xff0c;成为企业管理租赁业务的一种新选择。随着移动互联网的普及&#xff0c;越来越多的企业开始关注如何利用小程序来提高租赁服务的效率和便捷性。小程序不仅可以为用户提供一个快速、易用的平…

《深入理解 Spring MVC 工作流程》

一、Spring MVC 架构概述 Spring MVC 是一个基于 Java 的轻量级 Web 应用框架&#xff0c;它遵循了经典的 MVC&#xff08;Model-View-Controller&#xff09;设计模式&#xff0c;将请求、响应和业务逻辑分离&#xff0c;从而构建出灵活可维护的 Web 应用程序。 在 Spring MV…

RHCE的学习(21)

第三章 Shell条件测试 用途 为了能够正确处理Shell程序运行过程中遇到的各种情况&#xff0c;Linux Shell提供了一组测试运算符。 通过这些运算符&#xff0c;Shell程序能够判断某种或者几个条件是否成立。 条件测试在各种流程控制语句&#xff0c;例如判断语句和循环语句中…

SpringBoot中的restTemplate请求存在乱码问题的解决

SpringBoot中的restTemplate请求存在乱码问题的解决 搜索网上各种解法&#xff0c;最后在不断的一点点对比中&#xff0c;排查到了问题&#xff0c;是restTemplate不支持gzip&#xff0c;对返回的数据不能对gzip自动解压&#xff0c;因此需要去掉header中的accept-encoding 网…

【蓝桥杯C/C++】翻转游戏:多种实现与解法解析

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: 蓝桥杯C/C 文章目录 &#x1f4af;题目&#x1f4af;问题分析解法一&#xff1a;减法法解法二&#xff1a;位运算解法解法三&#xff1a;逻辑非解法解法四&#xff1a;条件运算符解法解法五&#xff1a;数组映射法不同解法的比较…

同三维T80003JEHS 4K/60帧HDMI/SDI超高清H.265解码器

1路HDMI和1路SDI输出&#xff0c;1路3.5音频输入和1路3.5音频输出&#xff0c;1个USB2.0口1个USB3.0口&#xff0c;带1个RS232串口&#xff0c;2个网口&#xff0c;支持1路4K60或4路4K30或16路1080P或32路720P解码输出。4种画面分割显示模式。 产品简介&#xff1a; 同三维T80…

Windows Server 2022 Web1

载入靶机&#xff0c;看到相关描述&#xff1a; 进入虚拟机发现桌面有phpstudy和解题两个软件&#xff1a; 打开解题.exe&#xff0c;发现里面是一些问题&#xff0c;接下来就需要获取相关信息&#xff1a; 1、shell密码 2、IP地址 3、隐藏账户名称 4、挖矿程序的矿池域名 打…

Leetcode打卡:新增道路查询后的最短距离II

执行结果&#xff1a;通过 题目&#xff1a;3244 新增道路查询后的最短距离II 给你一个整数 n 和一个二维整数数组 queries。 有 n 个城市&#xff0c;编号从 0 到 n - 1。初始时&#xff0c;每个城市 i 都有一条单向道路通往城市 i 1&#xff08; 0 < i < n - 1&…

在 CentOS 系统上直接安装 MongoDB 4.0.25

文章目录 步骤 1&#xff1a;配置 MongoDB 官方源步骤 2&#xff1a;安装 MongoDB步骤 3&#xff1a;启动 MongoDB 服务步骤 4&#xff1a;验证安装步骤 5&#xff1a;可选配置注意事项 以下是在 CentOS 系统上直接安装 MongoDB 4.0.25 的详细步骤&#xff1a; 步骤 1&#x…

商城小程序的流程渠道拓展

传统印象里&#xff0c;小程序的开发制作似乎很难&#xff0c;尤其是商城类型且功能体系完善的&#xff0c;事实也确实如此&#xff0c;没有较高的技术和成本投入或团队各个流程的专业人员合作&#xff0c;很难开发出来成品&#xff0c;或者质量较低。 当然对于大公司来说&…

计算机网络 (5)数据通信的基础知识

前言 数据通信是一种以信息处理技术和计算机技术为基础的通信方式&#xff0c;它通过数据通信系统将数据以某种信号方式从一处传送到另一处&#xff0c;为计算机网络的应用和发展提供了技术支持和可靠的通信环境&#xff0c;是现代通信技术的关键部分。 一、数据通信的基本概念…