数据操作+数据预处理

数据

1.张量(tensor)

其实就是n维数组,在PyTorch和TensorFlow中张量类为Tensor,是深度学习主要的数据结构。

0维------标量

1维------向量

2维------矩阵,每一行表示一个样本,每一列表示特征

3维------图片(rgb)

4维------批量的图片

数组有三要素:形状(几行几列),数据类型,元素的值

关于多维数组的理解,以三维为例,(2, 3, 4),就是两个二维的3*4数组

2.访问

基于python中切片的形式进行部分数据的访问

3.使用

python 复制代码
# 生成0~11的一个一维数组
x = torch.arange(12)
# 获取张量的形状
x.shape
# 张量元素的总数
x.numel()
# 改变张量的形状,但不影响元素的个数和值
X = x.reshape(3, 4)
# 生成全0、全1、随机、指定数据的张量
torch.zeros((2, 3, 4))
torch.ones((2, 3, 4))
torch.randn(3, 4)
torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])

数据操作

1.运算

任意具有相同形状的张量, 可以用常见的标准算术运算符(+、-、*、/和**)来进行对应元素的运算

2.张量的连接

连接的前提是指定维度外的其他维度相同,连接后指定维度发生延长,其他其他维度保持不变,用dim来指示维度,对应的其实就是形状中的第几个,比如一个张量的形状是(2,3,4,5),另一个是(1,3,4,5),dim=0上进行连接,那么数据就应当是(3,3,4,5)

python 复制代码
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]])
torch.cat((X, Y), dim=0), torch.cat((X, Y), dim=1)

3.广播机制

它使得形状不同的张量也可以进行元素运算,但该机制在张量的连接中不会起作用。

python 复制代码
a = torch.arange(3).reshape((3, 1))
b = torch.arange(2).reshape((1, 2))
a+b

广播机制会使得两个矩阵变为一个更大的矩阵,矩阵a将复制列, 矩阵b将复制行,然后再按元素相加

python 复制代码
(tensor([[0],
         [1],
         [2]]),
 tensor([[0, 1]]))
 #结果
 tensor([[0, 1],
        [1, 2],
        [2, 3]])

4.内存问题

Y = X + Y,将取消引用Y指向的源地址,而是指向新分配的内存处的张量

可以使用X: = X + Y或X += Y来减少操作的内存开销

数据预处理

数据集通常是存储在csv文件中,导入pandas包并调用read_csv函数来进行读取

1.处理缺失值

这是数据预处理的重要环节,典型的方法包括插值法和删除法, 其中插值法用一个替代值弥补缺失值,而删除法则直接忽略缺失值

相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero073 天前
Jev 与 Laya
python·语言模型