当前位置: 首页 > news >正文

[数据处理] 3. 数据集读取

👋 你好!这里有实用干货与深度分享✨✨ 若有帮助,欢迎:​
👍 点赞 | ⭐ 收藏 | 💬 评论 | ➕ 关注 ,解锁更多精彩!​
📁 收藏专栏即可第一时间获取最新推送🔔。​
📖后续我将持续带来更多优质内容,期待与你一同探索知识,携手前行,共同进步🚀。​



人工智能

数据集读取

本文使用PyTorch框架,介绍PyTorch中数据读取的相关知识。

本文目标:

  1. 了解PyTorch中数据读取的基本概念
  2. 了解PyTorch中集成的开源数据集的读取方法
  3. 了解PyTorch中自定义数据集的读取方法
  4. 了解PyTorch中数据读取的流程

一、数据的准备

使用开源数据集或者自己采集数据后进行数据标注。

PyTorch中数据读取的基本概念

PyTorch中数据读取的基本概念是DatasetDataLoader

Dataset是一个抽象类,用于表示数据集。它包含了数据集的长度、索引、数据获取等方法。

DataLoader是一个类,用于将数据集按批次加载到模型中。它包含了数据读取、数据转换、数据打乱等方法。

实现数据集读取的步骤:

  1. 继承Dataset类,实现__len____getitem__方法
  2. 使用DataLoader类,将数据集按批次加载到模型中

示例代码:

import torch
from torch.utils.data import Dataset, DataLoaderclass MyDataset(Dataset):def __init__(self, data, labels):self.data = dataself.labels = labelsdef __len__(self):return len(self.data)def __getitem__(self, index):return self.data[index], self.labels[index]data = torch.randn(100, 3, 224, 224)
labels = torch.randint(0, 10, (100,))dataset = MyDataset(data, labels)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)for batch_data, batch_labels in dataloader:print(batch_data.shape, batch_labels.shape)

PyTorch中集成的开源数据集的读取方法

使用开源数据MNIST作为示范。

数据集链接:MNIST数据集

PyTorch中以及集成了很多开源数据集,我们可以直接使用。MNIST也包括在其中。

只需要使用PyTorch中的torchvision.datasets模块即可。

示例代码:

  1. 引入必要的库:
import torch
from torchvision import datasets
import matplotlib.pyplot as plt
  1. 加载数据集:
train_dataset = datasets.MNIST(root='./data', train=True, download=True)
test_dataset = datasets.MNIST(root='./data', train=False, download=True)

参数说明:

  • root:数据集保存的路径
  • train:是否为训练集
  • download:是否下载数据集
  1. 查看数据集信息:
print(len(train_dataset), len(test_dataset))
print(train_dataset[0][0].size, train_dataset[0][1])
  1. 可视化数据集:
plt.imshow(train_dataset[0][0], cmap='gray')
plt.show()
  1. 数据加载:
train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True)
test_dataloader = torch.utils.data.DataLoader(test_dataset, batch_size=32, shuffle=False)
for batch_data, batch_labels in train_dataloader:print(batch_data.shape, batch_labels.shape)break

参数说明:

  • batch_size:批次大小
  • shuffle:是否打乱数据,训练集一般需要打乱数据,测试集一般不需要打乱数据

其实,真实的训练过程只需要步骤1、2、5即可,3、4步骤是为了验证数据集是否正确。

二、PyTorch中自定义数据集的读取方法

自定义数据集的读取方法是指,我们自己定义一个数据集,然后使用PyTorch中的DatasetDataLoader类来读取数据集。因为不是所有的数据集都在PyTorch中集成了,当我们有拥有(自己标注或下载)一个新的数据集时,就需要自己定义数据集的读取方法。

这时候需要将数据集以一定的规则保存起来,然后使用PyTorch中的DatasetDataLoader类来读取数据集。

示例代码:

  1. 引入必要的库:
import torch
from torch.utils.data import Dataset, DataLoader
import os
import numpy as np
import matplotlib.pyplot as plt
  1. 定义数据集类:
class MyDataset(Dataset):def __init__(self, data_dir, transform=None):self.data_dir = data_dirself.transform = transformself.data_list = os.listdir(data_dir)def __len__(self):return len(self.data_list)def __getitem__(self, index):data_path = os.path.join(self.data_dir, self.data_list[index])data = np.load(data_path)label = data['label']if self.transform is not None:data = self.transform(data)return data, label

参数说明:

  • data_dir:数据集保存的路径
  • transform:数据转换函数,可选。1. 用于数据增强,一般的数据增强方法有:随机裁剪、随机旋转、随机翻转、随机缩放等。2. 也可以用于数据预处理,如归一化、标准化等。
  1. 定义数据转换函数:
def transform(data):data = data['data']data = data.astype(np.float32)data = data / 255.0data = torch.from_numpy(data)return data
  1. 加载数据集:
train_dataset = MyDataset(data_dir='./data/train', transform=transform)
test_dataset = MyDataset(data_dir='./data/test', transform=transform)
  1. 查看数据集信息:
print(len(train_dataset), len(test_dataset))
print(train_dataset[0][0].size, train_dataset[0][1])
  1. 可视化数据集:
plt.imshow(train_dataset[0][0], cmap='gray')
plt.show()
  1. 数据加载:
train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True)
test_dataloader = torch.utils.data.DataLoader(test_dataset, batch_size=32, shuffle=False)
for batch_data, batch_labels in train_dataloader:print(batch_data.shape, batch_labels.shape)break
  1. 数据增强:
from torchvision import transformstransform = transforms.Compose([transforms.RandomCrop(28),  # 随机裁剪,裁剪大小为28x28transforms.RandomHorizontalFlip(),  # 随机水平翻转transforms.RandomVerticalFlip(),  # 随机垂直翻转transforms.RandomRotation(10),  # 随机旋转transforms.RandomAffine(degrees=10, translate=(0.1, 0.1), scale=(0.9, 1.1)),  # 随机仿射变换transforms.ToTensor()  # 转换为张量
])
train_dataset = MyDataset(data_dir='./data/train', transform=transform)
test_dataset = MyDataset(data_dir='./data/test', transform=transform)train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True)
test_dataloader = torch.utils.data.DataLoader(test_dataset, batch_size=32, shuffle=False)
for batch_data, batch_labels in train_dataloader:print(batch_data.shape, batch_labels.shape)break

DataLoader核心参数详解

DataLoader(dataset, batch_size=1, shuffle=False, sampler=None,batch_sampler=None,num_workers=0, collate_fn=None,pin_memory=False,drop_last=False,timeout=0,worker_init_fn=None,multiprocessing_context=None,
)

关键参数解析

  • num_workers:数据预加载进程数(建议设为CPU核心数的70-80%)
  • pin_memory:启用CUDA锁页内存加速GPU传输
  • prefetch_factor:每个worker预加载的batch数(PyTorch 1.7+)

数据加载性能优化公式

理论最大吞吐量
T h r o u g h p u t = min ⁡ ( B a t c h S i z e × n u m _ w o r k e r s D a t a L o a d T i m e , G P U C o m p u t e T i m e − 1 ) Throughput = \min\left(\frac{BatchSize \times num\_workers}{DataLoadTime}, GPUComputeTime^{-1}\right) Throughput=min(DataLoadTimeBatchSize×num_workers,GPUComputeTime1)

三、拓展:多模态数据加载示例

class MultiModalDataset(Dataset):def __init__(self, img_dir, text_path):self.img_dir = img_dirself.text_data = pd.read_csv(text_path)self.tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')def __getitem__(self, idx):# 图像处理img_path = os.path.join(self.img_dir, self.text_data.iloc[idx]['image_id'])image = Image.open(img_path).convert('RGB')image = transforms.ToTensor()(image)# 文本处理text = self.text_data.iloc[idx]['description']inputs = self.tokenizer(text, padding='max_length', truncation=True, max_length=128)return {'image': image,'input_ids': torch.tensor(inputs['input_ids']),'attention_mask': torch.tensor(inputs['attention_mask'])}

四、总结

本文介绍了PyTorch中数据读取的基本概念、集成的开源数据集的读取方法、自定义数据集的读取方法和数据读取的流程。

数据读取是深度学习训练的重要环节,数据读取的流程是:

  1. 定义数据集类
  2. 定义数据转换函数、数据增强函数
  3. 加载数据集



📌 感谢阅读!若文章对你有用,别吝啬互动~​
👍 点个赞 | ⭐ 收藏备用 | 💬 留下你的想法 ,关注我,更多干货持续更新!

相关文章:

[数据处理] 3. 数据集读取

👋 你好!这里有实用干货与深度分享✨✨ 若有帮助,欢迎:​ 👍 点赞 | ⭐ 收藏 | 💬 评论 | ➕ 关注 ,解锁更多精彩!​ 📁 收藏专栏即可第一时间获取最新推送🔔…...

Ceph 原理与集群配置

一、Ceph 工作原理 1.1.为什么学习 Ceph? 在学习了 NFS 存储之后,我们仍然需要学习 Ceph 存储。这主要是因为不同的存储系统适用于不同的场景,NFS 虽然有其适用之处,但也存在一定的局限性。而 Ceph 能够满足现代分布式、大规模、…...

【C++】类和对象

文章目录 1. 为什么引入类?1.1 C类的设计目标1.2 类的核心特性1.3 类与结构体的区别 2. 类的定义2.1 类定义格式2.2 访问限定符2.3 类域 3. 实例化3.1 实例化概念3.2 对象大小 4. this指针5. 类的默认成员函数6. 构造函数7. 析构函数8. 拷贝构造函数9. 赋值运算符重…...

【计算机视觉】OpenCV项目实战:OpenCV_Position 项目深度解析:基于 OpenCV 的相机定位技术

OpenCV_Position 项目深度解析:基于 OpenCV 的相机定位技术 一、项目概述二、技术原理(一)单应性矩阵(Homography)(二)算法步骤(三)相机内参矩阵 三、项目实战运行&#…...

【Linux系列】如何区分 SSD 和机械硬盘

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【AI提示词】双系统理论专家

提示说明 专注于认知心理学领域的专家,研究快思考(直觉)与慢思考(理性)的切换机制及其在认知科学中的应用。 提示词 # Role: 双系统理论专家## Profile - language: 中文 - description: 专注于认知心理学领域的专家…...

CI/CD与DevOps流程流程简述(给小白运维提供思路)

一 CI/CD流程详解:代码集成、测试与发布部署 引言 在软件开发的世界里,CI/CD(持续集成/持续交付)就像是一套精密的流水线,确保代码从开发到上线的整个过程高效、稳定。我作为一名资深的软件工程师,接下来…...

python调用国税乐企直连接口开数电票之查询税收分类编码信息

背景 通过国税官方开放乐企平台接口, 实现了在EPR系统内直接开票. 无需通过任何第三方系统.逐步更新到CSDN专栏分享大家参考. 接口说明 定时获取可用税收分类编码,绑定ERP内部的编码, 使开票时能根据商品匹配到对应的税收分类编码…针对不同编码维护了 18 类增值…...

国标GB28181视频平台EasyGBS打造电力行业变电站高效智能视频监控解决方案

一、方案背景​ 在数字化浪潮席卷电力行业的当下,变电站作为电力输送与分配的核心枢纽,其运行的安全性与稳定性直接关乎社会生产生活的正常运转。然而,传统变电站监控模式设备存在兼容性差、数据处理滞后、管理效率低下等问题,无…...

快速上手 Docker:从入门到安装的简易指南(Mac、Windows、Ubuntu)

PS:笔者在五一刚回来一直搞Docker部署AI项目,发现从开发环境迁移到生成环境时,Docker非常好用。但真的有一定上手难度,推荐读者多自己尝试踩踩坑。 本篇幅有限,使用与修改另起篇幅。 一、Docker是什么 #1. Docker是什…...

Kubernetes(k8s)学习笔记(九)--搭建多租户系统

K8s 多租户管理 多租户是指在同一集群中隔离多个用户或团队,以避免他们之间的资源冲突和误操作。在K8s中,多租户管理的核心目标是在保证安全性的同时,提高资源利用率和运营效率。 在K8s中,该操作可以通过命名空间(Nam…...

后端项目进度汇报

项目概述 本项目致力于构建一个先进的智能任务自动化平台。其核心技术是一套由大型语言模型(LLM)驱动的后端系统。该系统能够模拟一个多角色协作的团队,通过一系列精心设计或动态生成的处理阶段,来高效完成各种复杂任务&#xff…...

掌握 Kubernetes 和 AKS:热门面试问题和专家解答

1. 在 AKS(Azure Kubernetes 服务)中,集群、节点、Pod 和容器之间的关系和顺序是什么? 在 AKS(Azure Kubernetes 服务)中,集群、节点、Pod 和容器之间的关系和顺序如下: 集群&#…...

C++面向对象设计类的核心知识详解总述(1)

C 中的类是面向对象编程(OOP)的核心,用于封装数据和操作这些数据的函数。 下面将系统讲解 C 中类的核心知识点(包含语法 概念 示例): 一、类的基本结构 class MyClass { public:// 构造函数MyClass();//…...

【大模型系列篇】Qwen3思考预算及思考模式切换实现原理探索

我们之前一期有介绍过阿里发布并开源的Qwen3大语言模型,无缝集成思考模式、多语言和MCP智能体:《Qwen3开源全新一代大语言模型来了,深入思考,更快行动》,感兴趣的小伙伴可以跳转阅读。 而在本次开源的 Qwen3 的更新中…...

PPT 制作难题迎刃而解,影刀 RPA 开启自动化创作时代

前言 影刀cto说过这么一句话:不迷信AI,也不忽视AI,我们要打造以AI驱动的RPA,AI对当前社会的影响真的不亚于一场战争的爆发 RPA(机器人流程自动化)作为一种已被广泛应用的技术,能基于预设规则自…...

Node.js面试题

一、什么是Node.js? Node.js 是一个开源的跨平台 JavaScript 运行时环境,允许开发者在服务器端运行 JavaScript 代码。它基于 Chrome 的 V8 JavaScript 引擎构建,能够高效地处理 I/O 操作,适合构建高性能的网络应用。 异步非阻塞&…...

C# NX二次开发:投影曲线和偏置曲线UFUN函数详解

大家好,今天要讲的是关于投影曲线和偏置曲线相关的函数。 (1)UF_CURVE_create_proj_curves1:这个函数的定义为创建投影曲线。 Defined in: uf_curve.h Overview Creates projection curves. Objects to project may be poi…...

从明文裸奔到密钥长城:HTTPS加密全链路攻防与CA信任锚点构建

前言:本文将从HTTP的隐患出发,深入剖析HTTPS如何通过加密算法、数字证书与信任链机制重塑网络通信的安全边界。我们将探讨协议的证书颁发机构(CA)的信任逻辑,以及HTTPS在性能与安全之间的平衡艺术。将帮助您更从容地应…...

C# WPF 颜色拾取器

x:Name=Color Picker 语言:C# WPF 下载:https://download.csdn.net/download/polloo2012/90780640 主界面 颜色库 关于我们 颜色拾取器是一种能够帮助用户获取颜色信息,并进行颜色选择、识别和调整的工具,以下将从其常见类型、使用场景及部分软件工具这几个维度展开介绍…...

MySQL关于锁的面试题

目录 1.了解过 MySQL 死锁问题吗? 2.什么是线程死锁?死锁相关面试题 2.1 什么是死锁: 2.2 形成死锁的四个必要条件是什么? 2.3 如何避免线程死锁? 3. MySQL 怎么排查死锁问题? 4.Java线上死锁问题如…...

亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比

ASPICE(Automotive SPICE)和ISO 21434是汽车软件开发领域的两大核心标准,分别聚焦于过程质量与网络安全。以下从核心目标、覆盖范围、实施重点、协同关系及行业价值五个维度进行深度对比分析: 一、核心目标对比 ASPICE&#xff1…...

第5讲、Transformer 编码器(Encoder)处理过程详解

🔍 Transformer 编码器(Encoder)处理过程详解 Transformer Encoder 是一个由 N 层(一般为 6 层)堆叠而成的模块结构。每一层的本质是两个核心子模块: 多头自注意力(Multi-Head Self-Attention…...

Flutter Drawer 详解

目录 一、引言 二、Drawer 的基本用法 三、主要属性 四、常见问题与解决方案 4.1 手势冲突处理 4.2 多级导航管理 4.3 响应式布局适配 五、最佳实践建议 5.1 性能优化 5.2 无障碍支持 5.3 跨平台适配 六、结论 相关推荐 一、引言 在移动应用开发中,侧边…...

游戏引擎学习第263天:添加调试帧滑块

运行游戏,开始今天的开发工作。 我们继续游戏代码基础上进行重构,目标是实现更多的性能分析界面功能,尤其是调试用的用户界面。 目前运行游戏并打开性能分析窗口后,发现界面功能上还有不少缺陷。现在的界面可以向下钻取查看具体…...

Hadoop客户端环境准备

hadoop集群我们配置好了,要与它进行交互,我们还需要准备hadoop的客户端。要分成两步:下载hadoop包、配置环境变量。 1. 找到资料包路径下的Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:\hadoop-3.1.0&#…...

当“信任”遇上“安全”:如何用Curtain Logtrace记录文件操作活动 守护团队与数据的双重底线?

你是否也有过这样的担忧? 团队成员在处理敏感数据时是否遵守了公司规范? 某份被篡改或外泄的文档,到底发生了什么? 为了数据安全而频繁加密、限制下载,却反过来打击了员工的工作积极性…… 如何在不伤害团队信任的…...

如何进行室内VR全景拍摄?

如何进行室内VR全景拍摄? 室内VR全景拍摄作为先进的视觉技术,能够为用户提供沉浸式的空间体验。本文介绍如何进行室内VR全景拍摄,并阐述众趣科技在这一领域的技术支持和服务优势。 室内VR全景拍摄基础 1. 室内VR全景拍摄概述 室内VR全景拍…...

一文走进GpuGeek | conda常用命令

conda 常用命令 查看conda版本 conda --version 查看conda信息 conda info 更新conda自身到最新版本,同时也会更新其它包 conda update conda conda更新指定包,这里更新通过conda安装的zlib包 conda update zlib 列出所有虚拟环境 conda env li…...

Consumer Group的作用是什么?Rebalance的触发条件有哪些? (实现消费者负载均衡;消费者加入/离开、订阅Topic变化等)

好的,我现在需要回答用户关于Kafka Consumer Group和Rebalance的问题。首先,用户问的是Consumer Group的作用以及Rebalance的触发条件。根据之前的对话历史,用户已经了解了Kafka的基本组件、消息保留策略、顺序性保证等,现在的问题…...

【计算机视觉】OpenCV实战项目:Long-Exposure:基于深度学习的长时间曝光合成技术

Long-Exposure:基于深度学习的长时间曝光合成技术 项目概述与技术背景项目核心功能技术原理 环境配置与安装硬件要求建议详细安装步骤可选组件安装 实战应用指南1. 基础使用:视频转长曝光2. 高级模式:自定义光轨合成3. 批量处理模式 技术实现…...

CentOS 7 安装OpenJDK 17 JRE

CentOS 7 自带的java 版本为:java version "1.8.0_311", 有些软件的运行需要更高的java版本。CentOS 7 自带的默认仓库里 没有 OpenJDK 17,但是 Adoptium 项目(前身 AdoptOpenJDK)提供了稳定的 OpenJDK 17 版…...

C++从入门到实战(十三)C++函数模板与类模板初阶讲解

C从入门到实战(十三)C函数模板与类模板初阶讲解 前言一、为什么需要模板1. 函数重载的问题2. 泛型编程和模板的作用 二、函数模板2.1 函数模板格式2.2 函数模板的原理2.3 函数模板的实例化(1)隐式实例化:(2…...

CentOS服务器中如何解决内存泄漏问题?

内存泄漏并不是“爆炸性内存飙升”,而是程序申请了内存但没有释放,造成系统可用内存逐渐减少,直到用光。 表现形式: 系统空闲内存越来越少;swap频繁被占用;某些服务响应变慢甚至挂掉;重启服务后内存才释放。 内存泄漏的根源在哪…...

【Java项目脚手架系列】第三篇:Spring MVC基础项目脚手架

【Java项目脚手架系列】第三篇:Spring MVC基础项目脚手架 前言 在前面的文章中,我们介绍了Maven基础项目脚手架和JavaWeb基础项目脚手架。今天,我们将介绍Spring MVC项目脚手架,这是一个用于快速搭建Web应用的框架。 什么是Spr…...

chili3d调试笔记12 deepwiki viewport svg雪碧图 camera three.ts

xiangechen/chili3d | DeepWiki viewport阅读 🧠deep 我要把模型投影成dxf导出有什么办法 引用lookat 截图是如何实现的 明天接着搞 ---------------------------------------------------------------- 截图没什么用 搞个工程图模块可能才行 一个文件一行 忘…...

tinyrenderer笔记(Shader)

tinyrenderer个人代码仓库:tinyrenderer个人练习代码 前言 现在我们将所有的渲染代码都放在了 main.cpp 中,然而在 OpenGL 渲染管线中,渲染的核心逻辑是位于 shader 中的,下面是 OpenGL 的渲染管线: 蓝色是我们可以自…...

【奔跑吧!Linux 内核(第二版)】第1章:Linux 系统基础知识

笨叔 陈悦. 奔跑吧 Linux 内核(第2版) [M]. 北京: 人民邮电出版社, 2020. 文章目录 Linux 系统的发展历史Linux 发行版Red Hat LinuxDebian LinuxSuSE Linux优麒麟 Linux Linux 内核介绍宏内核和微内核Linux 内核概貌 Linux 系统的发展历史 Linux 系统诞…...

​Spring + Shiro 整合的核心要点及详细实现说明

在 Spring 项目中集成 Apache Shiro 可以实现轻量级的安全控制(认证、授权、会话管理等)。以下是 ​Spring Shiro 整合的核心要点及详细实现说明: 一、Spring 与 Shiro 整合的核心组件 ​组件​​作用​ShiroFilterFactoryBean创建 Shiro 过…...

已经写好论文的AI率降低

视频演示 https://www.bilibili.com/video/BV1v4VpzgEdc 提示词 你是我专门请来的“降维写作助手”,专门干一件事:把 AI 写得太“像 AI”的文字改得更像人写的。我们主要是处理论文、创作类内容,目标就是:不让检测工具一眼识破…...

AI教你学VUE——Deepseek版

一、基础阶段:打好Web开发基础 HTML/CSS基础 学习HTML标签语义化、CSS布局(Flex/Grid)、响应式设计(媒体查询、REM/VW单位)。资源推荐: MDN Web文档(免费):HTML | CSS实战…...

卷积神经网络基础(五)

6.3 Softmax-with-Loss 层 我们最后介绍输出层的softmax函数,之前我们知道softmax函数会将输入值正规化之后再输出。在手写数字识别的例子中,softmax层的输出如下: 输入图像通过Affi ne层和ReLU层进行转换,10个输入通过Softmax层…...

Go语言——string、数组、切片以及map

一、string、数组、切片代码 package mainimport "fmt"// 定义结构体 type student struct {id intname stringage intscore float32 }func main() {// 使用var声明切片var slice1 []intslice1 append(slice1, 1)slice1 append(slice1, 2)slice1 append(sl…...

线性回归有截距

In [ ]: ∑ i 1 m ( y i − x i T w ) 2 \sum _{i1}^{m}(y_{i}-x_{i}^{T}w)^{2} i1∑m​(yi​−xiT​w)2 w ^ ( X T X ) − 1 X T y \hat {w}(X^{T}X)^{-1}X^{T}y w^(XTX)−1XTy In [ ]: 1 #如果有截距,求解时,需要梯度下降法求解w 和b …...

【基础】Python包管理工具uv使用全教程

一、uv简介 uv 是由 Astral(前身为 Basis)团队开发的 Python 包安装器和解析器,完全使用 Rust 语言编写。与传统 Python 工具不同,uv 将多个工具的功能整合到一个高性能的解决方案中,旨在提供更现代、更高效的 Python…...

事务(transaction)-上

事务概述 食物是一个最小的工作单元。在数据库当中,事务表示一件完整的事儿。一个业务的完成可能需要多条DML语句共同配合才能完成,例如转账业务,需要执行两条DML语句,先更新张三账户的余额,再更新李四账户的余额&…...

Python训练打卡Day17

无监督算法中的聚类 知识点 聚类的指标聚类常见算法:kmeans聚类、dbscan聚类、层次聚类三种算法对应的流程 实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解…...

【爬虫】码上爬第6题-倚天剑

堆栈入手: 全部复制的话,注意修改一些必要在地方: 通过s函数来获取请求头的加密参数 通过xxxxoooo来获取解密后的数据 js代码关键点: python代码我推荐使用这个网站: Convert curl commands to code 根据生成的代码…...

自定义SpringBoot Starter-笔记

SpringBoot Starter的介绍参考: Spring Boot Starter简介-笔记-CSDN博客。这里介绍如何自定义一个springBoot Starter。 1. 项目结构 创建一个 Maven 项目,结构如下: custom-spring-boot-starter-demo/ ├── custom-hello-jdk/ # jdk模…...

一周学会Pandas2 Python数据处理与分析-Pandas2数据类型转换操作

锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili Pandas 提供了灵活的方法来处理数据类型转换,以下是常见操作及代码示例: 1. 查看数据类型 …...