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

Pandas:从一个DataFrame中直接索引赋值到另一个索引位置出错的Bug及其解决方案

这里写自定义目录标题

  • 动机
    • 代码1,这个代码是有问题的
    • 代码2,这个代码是我调试代码。拆分代码,最后找到问题所在,这个代码是正确的
    • 代码3。本以为找到问题所在之后,又稍微修改了下代码 2,这个代码还是没问题的
    • 代码4。本以为找到问题所在之后,又稍微修改了下代码 1,这个代码还是没问题的

动机

今天写代码,处理通量站数据的时候出错。代码逻辑没问题,但是就是得不到想要的结果,然后做个笔记。可能问题是我自己遇到的,在这里其他人也没经历,所以也看不懂。总体而言:Pandas:从一个DataFrame中直接索引赋值到另一个索引位置出错。必须使用一个中间变量去固定。虽然解决了问题,好像还是不知道为什么。我尝试过换python 版本(3.7 和 3.10),但是没用。

代码1,这个代码是有问题的

import pandas as pd
import numpy as np# 假设 siteData_reindexed 是你的 DataFrame
# 这里是一个示例 DataFrame
# siteData_reindexed = pd.DataFrame({
#     'SW_IN': [np.nan, 1, 2, np.nan, 4, np.nan, 6, 7, 8, 9, 10, np.nan],
#     'LW_IN': [1, 2, np.nan, 4, np.nan, 6, 7, np.nan, 9, 10, np.nan, 12],
#     'WS': [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
# }, index=pd.date_range(start="2019-06-26 14:00:00", end="2020-11-17 10:00:00", freq='60min'))# 计算每天的缺失值比例
rad_daily_miss_rate = siteData_reindexed[["SW_IN", "LW_IN"]].resample('D').apply(lambda x: x.isnull().mean())# 创建一个新的 DataFrame 来存储填补后的数据
filled_data = siteData_reindexed.copy()# 遍历每天的缺失值比例
for date, ratios in rad_daily_miss_rate.iterrows():print("##" * 30)sw_in_ratio = ratios['SW_IN']lw_in_ratio = ratios['LW_IN']print(date, sw_in_ratio, lw_in_ratio)print("前:")print(filled_data.loc[date - pd.Timedelta(hours=1): date + pd.Timedelta(hours=23), ["SW_IN", "LW_IN"]])# 检查缺失比例if sw_in_ratio == 0 and lw_in_ratio == 0:print("没有参加填补")# 如果缺失比例为0,什么都不做continueelif sw_in_ratio < 0.4 and lw_in_ratio < 0.4:# 如果缺失比例小于40%,使用 .ffill() 和 .bfill() 填补当天的 'SW_IN' 和 'LW_IN'filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']] = filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']].ffill().bfill()else:# 否则,使用前一天的24小时数据填补 'SW_IN' 和 'LW_IN'previous_day = date - pd.Timedelta(days=1)if previous_day in filled_data.index:print(f"填补前一天的数据: {previous_day}")print(filled_data.loc[previous_day:previous_day + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']])# 这里就是问题所在的位置filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']] = filled_data.loc[previous_day:previous_day + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']]else:print(f"前一天 {previous_day} 的数据不存在")print("后:")print(filled_data.loc[date - pd.Timedelta(hours=1): date + pd.Timedelta(hours=23), ["SW_IN", "LW_IN"]])# 结果
# print(filled_data)

问题出在这里 filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']] = filled_data.loc[previous_day:previous_day + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']]。必须使用一个中间变量去将数值固定,否则在内存中索引,会匹配错误。我是这么理解的。可能也是我写代码习惯不太好。

代码2,这个代码是我调试代码。拆分代码,最后找到问题所在,这个代码是正确的

""""""# 计算每天的缺失值比例
rad_daily_miss_rate = siteData_reindexed[["SW_IN","LW_IN"]].resample('D').apply(lambda x: x.isnull().mean())# 创建一个新的 DataFrame 来存储填补后的数据
filled_data= siteData_reindexed.copy()# 遍历每天的缺失值比例
for date, ratios in rad_daily_miss_rate.iterrows():if date <= pd.Timestamp("2019-06-29 23:00:00") :sw_in_ratio = ratios['SW_IN']lw_in_ratio = ratios['LW_IN']# 检查缺失比例if sw_in_ratio == 0 and lw_in_ratio == 0:print("没有参加填补")# 如果缺失比例为0,什么都不做continueelif sw_in_ratio < 0.4 and lw_in_ratio < 0.4:print("进入  sw_in_ratio < 0.4 and lw_in_ratio < 0.4 ")# 如果缺失比例小于30%,使用 .ffill() 和 .bfill() 填补当天的 'SW_IN' 和 'LW_IN'filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']] = filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']].ffill().bfill()else:print("进入 else")# 否则,使用前一天的24小时数据填补 'SW_IN' 和 'LW_IN'# 这个放置位置的索引timeRange = pd.date_range(start= date, end=date + pd.Timedelta(days=1), freq='60min')for date_index in timeRange:# 确保匹配到的是前一天的数据print(f"date_index: {date_index}")# 必须使用一个中间变量去将数值固定,否则在内存中索引,会匹配错误previous_day_value = siteData_reindexed.loc[date_index - pd.Timedelta(days=1), ['SW_IN', 'LW_IN']]print(f"前一天数据: {previous_day_value}")# 检查是否能成功填充filled_data.loc[date_index, ['SW_IN', 'LW_IN']] = previous_day_valueprint(f"填补后的数据: {filled_data.loc[date_index, ['SW_IN', 'LW_IN']]}")print("后:")print(filled_data.loc[date:date + pd.Timedelta(hours=23),["SW_IN","LW_IN"]])
# 结果
# print(filled_data)

代码3。本以为找到问题所在之后,又稍微修改了下代码 2,这个代码还是没问题的

""""""# 计算每天的缺失值比例
rad_daily_miss_rate = siteData_reindexed[["SW_IN","LW_IN"]].resample('D').apply(lambda x: x.isnull().mean())# 创建一个新的 DataFrame 来存储填补后的数据
filled_data= siteData_reindexed.copy()# 遍历每天的缺失值比例
for date, ratios in rad_daily_miss_rate.iterrows():if date <= pd.Timestamp("2019-06-29 23:00:00") :sw_in_ratio = ratios['SW_IN']lw_in_ratio = ratios['LW_IN']# 检查缺失比例if sw_in_ratio == 0 and lw_in_ratio == 0:print("没有参加填补")# 如果缺失比例为0,什么都不做continueelif sw_in_ratio < 0.4 and lw_in_ratio < 0.4:print("进入  sw_in_ratio < 0.4 and lw_in_ratio < 0.4 ")# 如果缺失比例小于30%,使用 .ffill() 和 .bfill() 填补当天的 'SW_IN' 和 'LW_IN'filled_data.loc[date:date + pd.Timedelta(days=1), ['SW_IN', 'LW_IN']] = filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']].ffill().bfill()else:print("进入 else")# 否则,使用前一天的24小时数据填补 'SW_IN' 和 'LW_IN'# 变量前一天previous_day = date - pd.Timedelta(days=1)# 前一天的数据previous_day_data = siteData_reindexed.copy().loc[previous_day:date, ['SW_IN', 'LW_IN']]filled_data.loc[date:date + pd.Timedelta(days=1), ['SW_IN', 'LW_IN']] = previous_day_data# 这个放置位置的索引# timeRange = pd.date_range(start= date, end=date + pd.Timedelta(days=1), freq='60min')# for date_index in timeRange:##     # 确保匹配到的是前一天的数据#     print(f"date_index: {date_index}")#     # 必须使用一个中间变量去将数值固定,否则在内存中索引,会匹配错误#     previous_day_value = siteData_reindexed.loc[date_index - pd.Timedelta(days=1), ['SW_IN', 'LW_IN']]#     print(f"前一天数据: {previous_day_value}")##     # 检查是否能成功填充#     filled_data.loc[date_index, ['SW_IN', 'LW_IN']] = previous_day_value#     print(f"填补后的数据: {filled_data.loc[date_index, ['SW_IN', 'LW_IN']]}")print("后:")print(filled_data.loc[date:date + pd.Timedelta(hours=23),["SW_IN","LW_IN"]])
# 结果
# print(filled_data)

代码4。本以为找到问题所在之后,又稍微修改了下代码 1,这个代码还是没问题的

import pandas as pd
import numpy as np# 创建一个示例 DataFrame
data = {'SW_IN': [np.nan, 1, 2, np.nan, 4, np.nan, 6, 7, 8, 9, 10, np.nan],'LW_IN': [1, 2, np.nan, 4, np.nan, 6, 7, np.nan, 9, 10, np.nan, 12],'WS': [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
}
index = pd.date_range(start="2019-06-26 14:00:00", end="2020-11-17 10:00:00", freq='60min')
siteData_reindexed = pd.DataFrame(data, index=index)# 计算每天的缺失值比例
rad_daily_miss_rate = siteData_reindexed[["SW_IN", "LW_IN"]].resample('D').apply(lambda x: x.isnull().mean())# 创建一个新的 DataFrame 来存储填补后的数据
filled_data = siteData_reindexed.copy()# 遍历每天的缺失值比例
for date, ratios in rad_daily_miss_rate.iterrows():print("##" * 30)sw_in_ratio = ratios['SW_IN']lw_in_ratio = ratios['LW_IN']print(date, sw_in_ratio, lw_in_ratio)print("前:")print(filled_data.loc[date - pd.Timedelta(hours=1): date + pd.Timedelta(hours=23), ["SW_IN", "LW_IN"]])# 检查缺失比例if sw_in_ratio == 0 and lw_in_ratio == 0:print("没有参加填补")continueelif sw_in_ratio < 0.4 and lw_in_ratio < 0.4:# 填补当天的缺失值filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']] = filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']].ffill().bfill()else:# 使用前一天的24小时数据填补previous_day = date - pd.Timedelta(days=1)if previous_day in filled_data.index:print(f"填补前一天的数据: {previous_day}")previous_data = filled_data.loc[previous_day:previous_day + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']]print("前一天的数据:")print(previous_data)# 确保赋值的索引对齐filled_data.loc[date:date + pd.Timedelta(hours=23), ['SW_IN', 'LW_IN']] = previous_data.copy()else:print(f"前一天 {previous_day} 的数据不存在")print("后:")print(filled_data.loc[date - pd.Timedelta(hours=1): date + pd.Timedelta(hours=23), ["SW_IN", "LW_IN"]])# 结果
# print(filled_data)

相关文章:

Pandas:从一个DataFrame中直接索引赋值到另一个索引位置出错的Bug及其解决方案

这里写自定义目录标题 动机代码1&#xff0c;这个代码是有问题的代码2&#xff0c;这个代码是我调试代码。拆分代码&#xff0c;最后找到问题所在&#xff0c;这个代码是正确的代码3。本以为找到问题所在之后&#xff0c;又稍微修改了下代码 2&#xff0c;这个代码还是没问题的…...

电脑想安装 Windows 11 需要开启 TPM 2.0 怎么办?

尽管 TPM 2.0 已经内置在许多新电脑中&#xff0c;但很多人并不知道如何激活这一功能&#xff0c;甚至完全忽略了它的存在。其实&#xff0c;只需简单的几步操作&#xff0c;你就能开启这项强大的安全特性&#xff0c;为你的数字生活增添一层坚固的防护屏障。无论你是普通用户还…...

请谈谈 Vue 中的响应式原理,如何实现?

一、Vue2响应式原理&#xff1a;Object.defineProperty的利与弊 实现原理&#xff1a; // 数据劫持核心实现 function defineReactive(obj, key, val) {const dep new Dep(); // 依赖收集容器Object.defineProperty(obj, key, {get() {if (Dep.target) { // 当前Watcher实例…...

深入解析浏览器渲染全流程:从URL输入到页面渲染的底层原理与性能优化(附实战代码)

本文以https://example.com为例&#xff0c;逐层剖析浏览器从输入URL到页面渲染的完整链路&#xff0c;涵盖DNS解析、TCP/TLS握手、HTTP请求、DOM/CSSOM构建等核心阶段&#xff0c;结合代码示例与性能调优技巧&#xff0c;助你掌握浏览器底层运行机制。 一、导航阶段&#xff1…...

vue 识别 <think></think>

在 Vue.js 中处理自定义标签或者在 HTML 中嵌入特定标记&#xff08;例如 &#xff09;通常涉及到两个方面&#xff1a;模板语法和组件化。 模板语法 Vue 使用基于 HTML 的模板语法来声明式地将 DOM 绑定至底层数据。默认情况下&#xff0c;Vue 会忽略未知元素&#xff0c;除非…...

Three.js 快速入门教程【一】开启你的 3D Web 开发之旅

系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 Three.js 快速入门教程【六】相机控件 Or…...

ubuntu 执行 sudo apt-get update 报错

记录一下&#xff0c;遇到这个问题了&#xff0c;网络上看到的解决办法&#xff0c;亲测有效 执行sudo apt-get update ,却报以下错误&#xff0c;“SECURITY: URL redirect target contains control characters rejecting ” 经检查发现&#xff0c;/etc/apt/source.list 下的…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-loaders.py

loaders.py ultralytics\data\loaders.py 目录 loaders.py 1.所需的库和模块 2.class SourceTypes: 3.class LoadStreams: 4.class LoadScreenshots: 5.class LoadImagesAndVideos: 6.class LoadPilAndNumpy: 7.class LoadTensor: 8.def autocast_list(source…...

ubuntu24基于虚拟机无法从主机拖拽文件夹

以下是解决问题的精简步骤&#xff1a; 安装 open-vm-tools-desktop&#xff1a; bash复制 sudo apt-get install open-vm-tools-desktop 重启虚拟机后&#xff0c;文字复制粘贴功能可正常工作。 禁用 Wayland&#xff1a; 编辑 /etc/gdm3/custom.conf 文件&#xff1a; bash复…...

二叉树(数据结构)

二叉树 二叉树也是用过递归定义的结构 先序遍历又称前序遍历 ​​ ​​ 按照先序遍历的方法去手算处理这个二叉树 ​​ 先A B C 再 A B D E C&#xff08;也就是把B换成BDE再放进去&#xff09; 再 A B D E C F 看这个插入的方法要掌握像二叉树这样向一个…...

Vue 实现通过URL浏览器本地下载 PDF 和 图片

1、代码实现如下&#xff1a; 根据自己场景判断 PDF 和 图片&#xff0c;下载功能可按下面代码逻辑执行 const downloadFile async (item: any) > {try {let blobUrl: any;// PDF本地下载if (item.format pdf) {const response await fetch(item.url); // URL传递进入i…...

MySQL版本选择与安装

MySQL版本选择与安装 MySQL 5.5 优点: 稳定性&#xff1a;5.5版本是长期支持&#xff08;LTS&#xff09;版本&#xff0c;因此它非常稳定&#xff0c;被广泛部署在生产环境中。 兼容性&#xff1a;与旧版本的MySQL和各种应用程序有很好的兼容性。 缺点: 过时&#xff1a;…...

Python网络爬虫技术详解文档

Python网络爬虫技术详解文档 目录 网络爬虫概述爬虫核心技术解析常用Python爬虫库实战案例演示反爬虫机制与应对策略爬虫法律与道德规范高级爬虫技术资源推荐与学习路径1. 网络爬虫概述 1.1 什么是网络爬虫 网络爬虫(Web Crawler)是一种按特定规则自动抓取互联网信息的程序…...

STM32 CubeMx配置串口收发使用DMA并调用Idle模式(二)

本篇主要结合代码落实&#xff0c;之前串口已经配置好的DMA方式。 一、首先我们把串口看成一个对象&#xff0c;它有属性、私有数据和方法&#xff1b; 每个串口都有名字属性&#xff1b;有初始化、发送、接收方法&#xff1b;还有一个私有数据&#xff08;这个私有数据是每个…...

现代游戏UI架构深度解析——以UIController为核心的模块化界面管理系统

一、架构全景与设计哲学 本文将以重构后的UIController为核心&#xff0c;深入探讨Unity引擎下的高效UI管理方案。该体系采用"分层-分治"设计理念&#xff0c;通过界面生命周期管理、动态适配策略、资源优化机制三个维度的协同工作&#xff0c;构建了适应复杂交互需…...

DeepSeek 助力 Vue 开发:打造丝滑的点击动画(Click Animations)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

**ARM Cortex-M4** 和 **ARM Cortex-M7* 运行freeRTOS

**是的&#xff0c;Cortex-M4 和 Cortex-M7 都可以运行 FreeRTOS**。FreeRTOS 是一个轻量级的实时操作系统&#xff08;RTOS&#xff09;&#xff0c;专为嵌入式系统设计&#xff0c;支持多种硬件架构&#xff0c;包括 ARM Cortex-M 系列&#xff08;如 Cortex-M0、M3、M4、M7 …...

### net7 + 出现了 自带的 限流中间件 固定窗口、滑动窗口 并发 令牌桶 全局限流器

资料 限流的方法 速率限制算法 固定窗口算法 是最简单的算法之一。它将请求限制为一个固定的时间窗口&#xff0c;该窗口在任何时间点都只允许固定数量的请求。 滑动窗口算法 是固定窗口算法的改进版本&#xff0c;它将请求限制为一个可变的窗口&#xff0c;该窗口在任何时间…...

【Python】迭代器与生成器详解,附代码(可迭代对象、定义、实现方式、区别、使用场景)

文章目录 1. 可迭代对象1.1 常见的可迭代对象1.2 迭代器和生成器 2. 迭代器2.1 定义2.2 原理2.3 特点2.4 示例2.4.1 for语句进行遍历2.4.2 next() 函数进行遍历2.4.3 自定义迭代器 2.5 内置迭代器 3. 生成器3.1 定义3.2 创建方式3.2.1 生成器表达式3.2.2 生成器函数 3.3 特点 4…...

05.Docker 容器命令

Docker 容器命令 Docker 容器命令1. 启动容器用法2. 显示当前存在容器3. 查看容器内的进程4. 查看容器资源使用情况5. 查看容器的详细信息6. 删除容器7. 容器的启动和停止8. 给正在运行的容器发信号9. 进入正在运行的容器10. 暴露所有容器端口11. 指定端口映射12. 查看容器的日…...

猿大师办公助手对比其他WebOffice在线编辑Office插件有什么优势

1. 原生Office功能完整嵌入&#xff0c;排版一致性保障 猿大师办公助手直接调用本地安装的微软Office、金山WPS或永中Office&#xff0c;支持所有原生功能&#xff08;如复杂公式、VBA宏等&#xff09;&#xff0c;确保网页编辑与本地打开的文档排版完全一致。 提供OLE嵌入和完…...

Ubuntu搭建RTSP服务器

下载 http://www.live555.com/liveMedia/public/ 安装ffmpeg sudo apt install -y ffmpeg 转换文件&#xff08;必须&#xff01;&#xff09; ffmpeg -i test.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 test.264编译 ./genMakefiles linux-64bit make 启动服务器…...

视觉分析之边缘检测算法

9.1 Roberts算子 Roberts算子又称为交叉微分算法&#xff0c;是基于交叉差分的梯度算法&#xff0c;通过局部差分计算检测边缘线条。 常用来处理具有陡峭的低噪声图像&#xff0c;当图像边缘接近于正45度或负45度时&#xff0c;该算法处理效果更理想。 其缺点是对边缘的定位…...

14.2 Auto-GPT 开源项目深度解析:从代码架构到二次开发实践

Auto-GPT 开源项目深度解析:从代码架构到二次开发实践 关键词:Auto-GPT 源码解读、自主智能体开发、开源项目贡献指南、智能体扩展开发、AI 代理技术栈 一、Auto-GPT 项目全景速览 1.1 项目定位与技术定位 GitHub 数据亮眼: 🌟 Star 数:98k+(截至2024年3月)🚀 贡献…...

Java中的常用类 --String

学习目标 掌握String常用方法掌握StringBuilder、StringBuffer了解正则 1.String ● String是JDK中提前定义好的类型 其所在的包是java.lang ,String翻译过来表示字符串类型&#xff0c;也就是说String类中已经提前定义好了很多方法都是用来处理字符串的&#xff0c;所以Str…...

手机控制电脑远程关机

远程看看软件兼容iOS和Android设备&#xff0c;该软件除了能通过电脑远程关闭另一台电脑外&#xff0c;您还可以通过它在手机上远程关闭公司的电脑。您可以按照以下步骤进行操作以实现电脑远程关机&#xff1a; 步骤1.在手机应用商店搜索“远程看看”进行软件安装&#xff0c;…...

用DeepSeeker + AI 进行物料主数据编码规则学习训练

AI 进行物料主数据编码规则学习训练 作为需要通过AI赋能SAP用户&#xff0c;如何通过DeepSeeker AI帮助SAP进行物料主数据的学习和规则验证 一、核心场景与痛点分析 SAP物料主数据管理挑战 数据质量问题 字段值错误&#xff08;如单位错误、分类错误&#xff09;重复数据&#…...

ES6相关操作(2)

一.Promise Promise是ES6引入的异步编程工具。 语法上Promise是一个构造函数,用于封装异步操作并可以获取操作成功或失败的结果 Promise构造函数:Promise(excutor){} Promise的常用函数:then,catch 实例化Promise对象(创建Promise工具) let data"请求数据"//该数据为…...

Java中JDK、JRE,JVM之间的关系

Java中的JDK、JRE和JVM是三个核心概念&#xff0c;其关系可概括为JDK > JRE > JVM&#xff0c;具体如下&#xff1a; 一、定义与作用 JDK&#xff08;Java Development Kit&#xff09; 定义&#xff1a;Java开发工具包&#xff0c;用于开发和编译Java程序。包含内容&…...

HTTP SSE 实现

参考&#xff1a; SSE协议 SSE技术详解&#xff1a;使用 HTTP 做服务端数据推送应用的技术 一句概扩 SSE可理解为&#xff1a;服务端和客户端建立连接之后双方均保持连接&#xff0c;但仅支持服务端向客户端推送数据。推送完毕之后关闭连接&#xff0c;无状态行。 下面是基于…...

51单片机介绍

1、单片机基础知识 1.1、单板机 将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备(小键盘、LED显示器)等装配到一块印刷电路板上,再配上监控程序(固化在ROM中),就构成了一台单板微型计算机(简称单板机)。 1.2、单片机 在一片集成电路芯片上集成微处理器、存储器…...

Github访问不了解决方案(Mac)

电脑又重装了&#xff0c;到Github下载东西&#xff0c;又访问不了&#xff0c;记录一下解决方案&#xff1a;修改hosts文件。 补充 1、确定可以访问Github的IP地址 打开多个地点ping[github.com]服务器-网站测速-站长工具 输入github.com&#xff0c;点击Ping检测&#xff…...

机器视觉3D深度图颜色含义解析

在机器视觉中&#xff0c;3D深度图颜色变化通常表示以下含义&#xff1a; 1.深度信息变化 颜色深浅&#xff1a;颜色越深&#xff0c;物体越近&#xff1b;颜色越浅&#xff0c;物体越远。 颜色渐变&#xff1a;平滑的渐变表示深度连续变化&#xff0c;突变则表示深度不连续。 …...

鸡兔同笼问题

鸡兔同笼问题是这样一个问题&#xff1a; 现有鸡、兔合装在一个笼子里。数头一共100个头&#xff0c;数脚一共300只脚。问有多少只鸡多少只兔&#xff1f; 在这里讨论这个问题的解法当然太小儿科了。但是y_tab这个C语言解释器只提供了1维数组。如果需要用到2维数组时&#xff…...

【Next.js App Router 深度解剖手册】

&#x1f50d; Next.js App Router 深度解剖手册 让我们抛开表象&#xff0c;直击 App Router 的设计核心&#xff01; 本文将用 2000 字 底层原理图解&#xff0c;带你彻底理解这个现代路由系统的运作机制。系好安全带&#xff0c;准备深入代码底层&#xff01; &#x1f68…...

Spring Boot ShardingJDBC分库分表(草稿)

ShardingJDBC分库分表 1.Maven 引用 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.1.1</version></dependency><dependency><…...

基于射频开关选择的VNA校准设计

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…...

Pipeline 获取 Jenkins参数

Pipeline 获取 Jenkins参数 Jenkins 提供了一系列默认的环境变量&#xff0c;这些变量在构建过程中可以被使用。以下是一些常见的 Jenkins 默认环境变量&#xff1a; WORKSPACE: 当前构建的工作目录路径 JOB_NAME: 当前构建的作业名称 BUILD_NUMBER: 当前构建的编号&#xff…...

ARM Linux平台下 OpenCV Camera 实验

一、硬件原理 1. OV2640 1.1 基本功能 OV2640 是一款低功耗、高性能的图像传感器&#xff0c;支持以下功能&#xff1a; 最高分辨率&#xff1a;200 万像素&#xff08;1600x1200&#xff09;。 输出格式&#xff1a;JPEG、YUV、RGB。 内置图像处理功能&#xff1a;自动曝…...

【Python爬虫(30)】构建高效爬虫数据管理体系:从抓取到协作

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…...

淘宝/天猫店铺订单数据导出、销售报表设计与数据分析指南

在电商运营中&#xff0c;订单数据是店铺运营的核心资产之一。通过对订单数据的导出、整理和分析&#xff0c;商家可以更好地了解销售情况、优化运营策略、提升客户满意度&#xff0c;并制定科学的业务决策。本文将详细介绍淘宝/天猫店铺订单数据的导出方法、销售报表的设计思路…...

EasyRTC智能硬件:实时畅联、沉浸互动、消音护航

在当今智能硬件迅猛发展的时代&#xff0c;音视频通讯技术已成为设备与用户、设备与设备间不可或缺的沟通纽带。而EasyRTC&#xff0c;凭借其无可比拟的实时性能、卓越的互动感受以及强大的交互实力&#xff0c;正逐步演变为智能硬件领域的“超级动力”核心。特别是其倾力打造的…...

Docker Mysql 数据迁移

查看启动命令目录映射 查看容器名称 docker ps查看容器的启动命令 docker inspect mysql8.0 |grep CreateCommand -A 20如下图所示:我这边是把/var/lib/mysql 目录映射到我宿主机的/mnt/mysql/data目录下,而且我的数量比较大使用方法1的话时间比较久,所以我采用方法2 如果没…...

【文本】词嵌入经典模型:从one-hot到BERT

【文本】词嵌入经典模型&#xff1a;从one-hot到BERT one-hot编码&#xff08;独热编码&#xff09;&#xff1a; 根据词表的所有词构建一个向量特征。每一个文段中每个单词有一个词向量&#xff08;二进制且只有一位为1&#xff09; — 稀疏、缺乏语义&#xff08;father&am…...

unity学习49:寻路网格链接 offMeshLinks, 以及传送门效果

目录 1 网格链接 offMeshLinks 功能入口 1.1 unity 2022之前 1.2 unity 2022之后 2 网格链接 offMeshLinks 功能设置 3 点击 offMeshLinks 功能里的bake 3.1 unity 2022之前 3.2 unity 2022之后 3.3 实测link 3.4 跳跃距离增大&#xff0c;可以实现轻功类的效果 4 …...

【SQL】SQL多表查询

多表查询案例联系点击此处 &#x1f384;概念 一般我们说的多表查询都涉及外键和父子表之间的关系。比如一对多:一般前面指的是父表后面指的是子表。 ⭐分类 一对多(多对一) 多对多 一对一 ⭐一对多 &#x1f4e2;案例&#xff1a;部门与员工的关系 &#x1f4e2;关系&…...

linux网络安全设置

TCP SYN Flood 攻击 TCP SYN Flood是一种常见&#xff0c;而且有效的远端(远程)拒绝服务(Denial of Service)攻击方式&#xff0c;它透过一定的操作破坏TCP三次握手建立正常连接&#xff0c;占用并耗 费系统资源&#xff0c;使得提供TCP服务的主机系统无法正常工作。由於TCP SY…...

AutoDock CrankPep or ADCP进行蛋白质多肽对接

需求描述 使用AutoDock CrankPep or ADCP进行蛋白质多肽对接 硬件及系统配置 自用电脑型号如下&#xff1a; 电脑&#xff1a;Precision Tower 7810 (Dell Inc.) CPU &#xff1a; Intel Xeon CPU E5-2686 v4 2.30GHz GPU&#xff1a; NVIDIA GeForce GTX 1070 Linux版本&a…...

Qt开源项目获取

GitHub上超实用的Qt开源项目,码住不谢!🎉 宝子们,今天来给大家安利一波GitHub上超棒的Qt开源项目,无论是学习还是开发,都能找到超多灵感和实用工具,快来看看有没有你需要的吧!1. Qt-Advanced-Docking-System完美的Dock窗口布局解决方案,让你的窗口管理变得超级灵活。…...

Java——super

在Java中&#xff0c;super关键字用于引用父类的成员&#xff08;属性、方法或构造器&#xff09;。它在继承关系中非常重要&#xff0c;主要用于以下几种场景&#xff1a; 1. 调用父类的构造器 在子类的构造器中&#xff0c;可以使用super关键字调用父类的构造器。super()必须…...