Python 的 collections 模块
1. deque
(双端队列)
定义
deque
(读作 “deck”,即双端队列)是一个支持从两端高效添加和删除元素的数据结构。相比列表(list
)在头部操作的 O(n) 时间复杂度,deque
的两端操作都是 O(1)。
用途
- 队列和栈:可以用
deque
实现 FIFO(队列)或 LIFO(栈)。 - 滑动窗口:在处理固定大小的窗口问题时,
deque
适合维护窗口内的元素。 - BFS(广度优先搜索):
deque
常用于实现队列。 - 字符串或数组的双端操作:需要频繁在两端添加/删除元素时。
常用方法
append(x)
:在右端添加元素 x。appendleft(x)
:在左端添加元素 x。pop()
:移除并返回右端元素。popleft()
:移除并返回左端元素。extend(iterable)
:将可迭代对象中的元素添加到右端。extendleft(iterable)
:将可迭代对象中的元素添加到左端(注意顺序会反转)。clear()
:清空队列。rotate(n)
:将队列向右旋转 n 步(n 为负数时向左旋转)。
示例代码
from collections import deque# 创建一个双端队列
d = deque([1, 2, 3])# 添加元素
d.append(4) # d = deque([1, 2, 3, 4])
d.appendleft(0) # d = deque([0, 1, 2, 3, 4])# 删除元素
right = d.pop() # right = 4, d = deque([0, 1, 2, 3])
left = d.popleft() # left = 0, d = deque([1, 2, 3])# 旋转
d.rotate(1) # d = deque([3, 1, 2])
d.rotate(-1) # d = deque([1, 2, 3])print(d) # 输出 deque([1, 2, 3])
竞赛场景
在 BFS 中,deque
是实现队列的首选。例如:
from collections import dequedef bfs(start, graph):queue = deque([start])visited = set([start])while queue:node = queue.popleft()print(node, end=' ')for neighbor in graph[node]:if neighbor not in visited:visited.add(neighbor)queue.append(neighbor)# 示例图
graph = {1: [2, 3],2: [1, 4],3: [1, 5],4: [2],5: [3]
}
bfs(1, graph) # 输出:1 2 3 4 5
2. Counter
(计数器)
定义
Counter
是一个字典子类,用于统计可哈希对象(通常是字符串、数字等)的出现次数。它非常适合需要统计元素频率的问题。
用途
- 统计频率:快速计算数组、字符串中每个元素的出现次数。
- 前 k 个高频元素:结合堆或排序解决频率相关问题。
- 字符匹配:检查两个字符串是否是异位词(anagram)。
- 多重集操作:支持集合的并、交、差等操作。
常用方法
Counter(iterable)
:从可迭代对象创建计数器。elements()
:返回一个迭代器,包含所有元素(按计数重复)。most_common(n)
:返回前 n 个频率最高的元素及其计数。subtract(iterable)
:从当前计数中减去另一个可迭代对象的计数。update(iterable)
:累加另一个可迭代对象的计数。
示例代码
from collections import Counter# 统计字符串中字符频率
s = "abracadabra"
counter = Counter(s)
print(counter) # Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})# 获取频率最高的 3 个字符
print(counter.most_common(3)) # [('a', 5), ('b', 2), ('r', 2)]# 统计数组
nums = [1, 1, 2, 3, 1, 2]
counter = Counter(nums)
print(counter) # Counter({1: 3, 2: 2, 3: 1})# 集合操作
c1 = Counter(a=3, b=1)
c2 = Counter(a=1, b=2)
print(c1 + c2) # Counter({'a': 4, 'b': 3})
print(c1 - c2) # Counter({'a': 2})
竞赛场景
判断两个字符串是否是异位词:
from collections import Counterdef is_anagram(s: str, t: str) -> bool:return Counter(s) == Counter(t)print(is_anagram("listen", "silent")) # True
print(is_anagram("hello", "world")) # False
3. defaultdict
(默认字典)
定义
defaultdict
是一个字典子类,当访问不存在的键时,会自动为该键提供一个默认值(由指定的工厂函数生成)。这避免了手动检查键是否存在。
用途
- 分组:将元素按某种规则分组(如按值、长度等)。
- 计数:类似
Counter
,但更灵活。 - 图的邻接表:构建图结构时,自动为每个节点初始化一个空列表。
- 动态规划:需要为不存在的键提供默认值时。
常用工厂函数
list
:默认值为空列表[]
。int
:默认值为 0。set
:默认值为空集合set()
。- 自定义函数:通过
lambda
或其他函数定义默认值。
示例代码
from collections import defaultdict# 默认值为空列表
d = defaultdict(list)
d['a'].append(1) # d = {'a': [1]}
d['a'].append(2) # d = {'a': [1, 2]}
d['b'].append(3) # d = {'a': [1, 2], 'b': [3]}
print(d)# 默认值为 0
d = defaultdict(int)
d['a'] += 1 # d = {'a': 1}
d['b'] += 2 # d = {'a': 1, 'b': 2}
print(d)# 自定义默认值
d = defaultdict(lambda: "unknown")
d['a'] = "known"
print(d['a']) # known
print(d['b']) # unknown
竞赛场景
构建图的邻接表:
from collections import defaultdictdef build_graph(edges):graph = defaultdict(list)for u, v in edges:graph[u].append(v)graph[v].append(u) # 无向图return graphedges = [(1, 2), (2, 3), (3, 1)]
graph = build_graph(edges)
print(graph) # defaultdict(<class 'list'>, {1: [2, 3], 2: [1, 3], 3: [1, 2]})
4. OrderedDict
(有序字典)
定义
OrderedDict
是一个字典子类,能够记住键的插入顺序。在 Python 3.7+ 中,普通字典也保留了插入顺序,但 OrderedDict
提供了一些额外的功能(如 move_to_end
)。
用途
- LRU 缓存:实现最近最少使用(Least Recently Used)缓存。
- 保持顺序:需要显式维护键值对的插入顺序。
- 滑动窗口:某些问题需要记录窗口内元素的顺序。
常用方法
popitem(last=True)
:移除并返回最后一项(last=False 时移除第一项)。move_to_end(key, last=True)
:将指定键移动到末尾(或开头)。- 其他与普通字典类似的操作。
示例代码
from/collections import OrderedDict# 创建有序字典
od = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3
print(od) # OrderedDict([('a', 1), ('b', 2), ('c', 3)])# 移动元素
od.move_to_end('a') # OrderedDict([('b', 2), ('c', 3), ('a', 1)])
od.move_to_end('b', last=False) # OrderedDict([('b', 2), ('c', 3), ('a', 1)])# 删除元素
od.popitem() # 删除最后一项,OrderedDict([('b', 2), ('c', 3)])
od.popitem(last=False) # 删除第一项,OrderedDict([('c', 3)])
竞赛场景
实现 LRU 缓存:
from collections import OrderedDictclass LRUCache:def __init__(self, capacity: int):self.cache = OrderedDict()self.capacity = capacitydef get(self, key: int) -> int:if key not in self.cache:return -1self.cache.move_to_end(key)return self.cache[key]def put(self, key: int, value: int) -> None:if key in self.cache:self.cache.move_to_end(key)self.cache[key] = valueif len(self.cache) > self.capacity:self.cache.popitem(last=False)# 测试
cache = LRUCache(2)
cache.put(1, 1)
cache.put(2, 2)
print(cache.get(1)) # 1
cache.put(3, 3) # 移除 2
print(cache.get(2)) # -1
5. namedtuple
(命名元组)
定义
namedtuple
是一个轻量级的类,用于创建具有命名字段的元组。它结合了元组的不可变性和字典的字段访问方式。
用途
- 结构体:表示具有固定字段的数据结构(如点坐标、记录等)。
- 清晰代码:通过字段名访问元素,代码更具可读性。
- 节省内存:相比字典或自定义类,
namedtuple
更高效。
常用方法
- 通过字段名或索引访问元素。
_replace(**kwargs)
:返回一个新的命名元组,替换指定字段。_asdict()
:将命名元组转换为字典。
示例代码
from collections import namedtuple# 定义命名元组
Point = namedtuple('Point', ['x', 'y'])# 创建实例
p = Point(1, 2)
print(p) # Point(x=1, y=2)
print(p.x, p.y) # 1 2
print(p[0], p[1]) # 1 2# 替换字段
p2 = p._replace(y=3)
print(p2) # Point(x=1, y=3)# 转换为字典
print(p._asdict()) # {'x': 1, 'y': 2}
竞赛场景
表示二维平面上的点:
from collections import namedtuplePoint = namedtuple('Point', ['x', 'y'])def distance(p1, p2):return ((p1.x - p2.x) ** 2 + (p1.y - p2.y) ** 2) ** 0.5p1 = Point(0, 0)
p2 = Point(3, 4)
print(distance(p1, p2)) # 5.0
总结与建议
以下是 collections
模块中常见工具的适用场景总结:
工具 | 主要用途 | 时间复杂度优势 |
---|---|---|
deque | 队列、栈、BFS、滑动窗口 | 两端操作 O(1) |
Counter | 频率统计、异位词、Top K 问题 | 计数 O(n),查询 O(1) |
defaultdict | 分组、计数、图的邻接表 | 访问不存在键时自动初始化 |
OrderedDict | LRU 缓存、保持插入顺序 | 移动/删除操作 O(1) |
namedtuple | 结构体、轻量级数据表示 | 内存高效,字段访问 O(1) |
学习建议
- 从简单问题入手:尝试用
Counter
解决频率统计问题,用deque
实现 BFS,用defaultdict
构建图。 - 多练习竞赛题:在 LeetCode、Codeforces 等平台上,搜索与这些数据结构相关的题目(如滑动窗口、BFS、LRU 缓存)。
- 熟悉时间复杂度:理解每个工具的性能优势,避免在竞赛中因数据结构选择不当导致超时。
- 结合其他模块:
collections
常与heapq
(堆)、bisect
(二分查找)等结合使用,逐步学习这些模块。
相关文章:
Python 的 collections 模块
1. deque (双端队列) 定义 deque(读作 “deck”,即双端队列)是一个支持从两端高效添加和删除元素的数据结构。相比列表(list)在头部操作的 O(n) 时间复杂度,deque 的两端操作都是 O(1)。 用途 队列和栈…...
浏览器发起调用到服务器的全过程解析
在 Web 应用的交互过程中,从用户在浏览器输入 URL 发起请求,到最终获取服务器返回的内容,背后涉及多个复杂而有序的步骤。理解这一过程,对于深入掌握 Web 开发、优化应用性能以及排查网络问题都具有重要意义。下面将详细阐述浏览器…...
塑料瓶识别分割数据集labelme格式976张1类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):976 标注数量(json文件个数):976 标注类别数:1 标注类别名称:["Trash plastic"] 每个类别标注的框数…...
RuoYi-Vue升级为https访问-后端安装SSL证书(单台Linux服务器部署)
一、前言 当Nginx已经作为反向代理并成功配置了SSL证书时,前端客户端与Nginx的通信已经是加密的。但Nginx和后端服务之间的连接可能仍然存在明文传输的风险。 如果Nginx和后端服务位于同一台物理机器或者通过安全的内部网络(如私有VLAN或防火墙保护的内网)进行通信,则可以…...
【学习笔记】文件上传漏洞--中间件解析漏洞、编辑器安全
目录 一、IIS 二、Apache HTTP Server 三、Apache HTTPD 未知后缀解析漏洞 四、Apache HTTPD 换行解析漏洞 五、黑、白名单 六、nginx解析漏洞 七、编辑器漏洞 一、IIS 文件夹 正常:image/qq.jpg 执行:image.asp/qq.jpg qq.jpg就会被当做asp解…...
【论文阅读】UniAD: Planning-oriented Autonomous Driving
一、Introduction 传统的无人驾驶采用了区分子模块的设计,即将无人驾驶拆分为感知规划控制三个模块,这虽然能够让无人驾驶以一个很清晰的结构实现,但是感知的结果在传达到规划部分的时候,会导致部分信息丢失,这势必会…...
【第16届蓝桥杯C++C组】--- 数位倍数
Hello呀,小伙伴们,第16届蓝桥杯也完美结束了,无论大家考的如何,都要放平心态,今年我刚上大一,也第一次参加蓝桥杯,刷的算法题也只有200来道,但是还是考的不咋滴,但是拿不…...
【腾讯云智】20250329笔试算法题
文章目录 第一题1. 题目描述2. 思路解析3. AC代码 第二题1. 题目描述2. 思路解析3. AC代码 第三题1. 题目描述2. 思路解析3. AC代码 第一题 1. 题目描述 题目链接:牛牛的水果店 2. 思路解析 这题比较简单,按数学思维把题目的意思翻译过来就是给你一…...
【2025最新】windows本地部署LightRAG,完成neo4j知识图谱保存
之前在服务器部署neo4j失败,无奈只能在本地部署,导致后期所有使用的知识图谱数据都存在本地,这里为了节省时间,先在本地安装LigthRAG完成整个实验流程,后续在学习各种服务器部署和端口调用。从基础和简单的部分先做起来…...
思考力提升的黄金标准:广度、深度与速度的深度剖析
文章目录 引言一、广度的拓展:构建多元知识网络1.1 定义与重要性1.2 IT技术实例与提升策略小结:构建多元知识网络,提升IT领域思考力广度 二、深度的挖掘:追求知识的精髓2.1 定义与重要性2.2 IT技术实例与提升策略小结:…...
7个向量数据库对比:Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant
7个向量数据库对比:Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant 本文简要总结了当今市场上正在积极开发的7个向量数据库,Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant 的详细比较。 我们已经接近在搜索引擎体验的基础层面上涉…...
计算机组成原理笔记(十五)——3.5指令系统的发展
不同类型的计算机有各具特色的指令系统,由于计算机的性能、机器结构和使用环境不同,指令系统的差异也是很大的。 3.5.1 x86架构的扩展指令集 x86架构的扩展指令集是为了增强处理器在多媒体、三维图形、并行计算等领域的性能而设计的。这些扩展指令集通…...
Rust 中的Relaxed 内存指令重排演示:X=0 Y=0 是怎么出现的?
🔥 Rust 中的内存重排演示:X0 && Y0 是怎么出现的? 在并发编程中,我们经常会听说“内存重排(Memory Reordering)”这个术语,但它似乎总是只出现在理论或者别人口中的幻觉里。本文将通过…...
vp 2023 icpc 合肥 解题补题记录 [F E J G]
gym 链接: https://codeforces.com/gym/104857 F. Colorful Balloons 血签, 用 map 存一下每个颜色气球出现的次数, 找出出现次数大于一半的颜色. #include<bits/stdc.h> using namespace std;#define int long long #define endl \nsigned main() {int n;cin >> …...
学习SqlSugar的跨库查询基本用法
使用SqlSugar操作数据库通常都是单库操作,跨库查询的情况要么是单个系统数据不完整,需要其它系统的关联业务数据支撑,要么就是需要整合汇总多个系统的数据进行数据数据分析、处理、展示。遇到上述情况,可以要求另外的系统提供查询…...
智慧工厂可视化系统,赋能工业生产智能化升级
借助图扑软件 HT 搭建智慧工厂可视化系统。利用先进 3D 建模,对工厂布局、设备运行、生产流程进行逼真复刻。实时展示设备状态、生产进度、质量检测数据等,助力管理者精准洞察生产,高效决策,推动工厂智能化转型。...
案例驱动的 IT 团队管理:创新与突破之路: 第四章 危机应对:从风险预见到创新破局-4.1.2债务评估模型与优先级排序
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 4.1.2 技术债务评估模型与优先级排序:构建智能决策体系一、技术债务的"冰山效应"与量化困境二、三维评估模型:穿透债务迷雾的探照灯2.1 评…...
nfs共享目录主配置文件权限参数
/etc/exports 文件默认为空文件,需要输入nfs共享命令 格式:共享目录的路径 允许访问的NFS客户端(共享权限参数) #编辑共享目录配置文件(即/etc/exports) [rootserver ~]# mkdir /nfs_share (创建共享的目录…...
C++ 编程指南35 - 为保持ABI稳定,应避免模板接口
一:概述 模板在 C 中是编译期展开的,不同模板参数会生成不同的代码,这使得模板类/函数天然不具备 ABI 稳定性。为了保持ABI稳定,接口不要直接用模板,先用普通类打个底,模板只是“外壳”,这样 AB…...
探索 MCP 和 A2A 协议: 本质上新协议都基于 HTTP的
以下是以 CSDN 博客的形式记录你对 MCP 协议和 A2A 协议数据传递的理解,重点探讨了它们为何基于 HTTP 协议、HTTP 的优势,以及数据传输的本质。文章面向技术社区,结构清晰,适合分享。 探索 MCP 和 A2A 协议:为何新协议…...
Linux网络http与https
应用层协议HTTP 提示 因为现在大多数都是https,所以就用https来介绍http,https比http多了一个加密功能,不影响介绍http。 什么是http 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的…...
C++ 算法(2):STL list 完全解析,从入门到高效使用
1. list概述 std::list是C标准模板库(STL)中的一个双向链表容器。与vector和deque不同,list不支持随机访问,但它在任何位置插入和删除元素都非常高效,时间复杂度为O(1)。 2. list的基本特性 双向链表结构:每个元素都包含指向前驱…...
【Linux实践系列】:匿名管道收尾+完善shell外壳程序
🔥 本文专栏:Linux Linux实践项目 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 人生总会有自己能力所不及的范围,但是如果你在你能力所及的范围尽了全部的努力,那你还有什么遗…...
Linux基本指令2
1.head 查看文件的前面内容 head 路径 :查看路径开头部分内容,如下图:head /var/log/messages查看/var/log/messages这个日志中前面内容 head -数字 路径 :查看路径开头指定数字行部分内容,如下图:he…...
Tkinter使用Canvas绘制图形
在Tkinter中,Canvas是一个非常强大的控件,用于绘制图形、显示图片和实现自定义图形界面。通过Canvas,您可以绘制各种形状、线条、文本等,并且能够进行灵活的动画和交互。掌握Canvas的使用将使您能够创建丰富的图形界面。 8.1 创建Canvas控件 Canvas控件是一个区域,用于绘…...
CF985G Team Players
我敢赌,就算你知道怎么做,也必然得调试半天才能 AC。 [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 图片来自洛谷。 [Analysis] \color{blue}{\texttt{[Analysis]}} [Analysis] 显然不可能正面计算。所以…...
ngx_conf_read_token - events
file_size ngx_file_size(&cf->conf_file->file.info); 获取 配置文件的大小 此时 file_size364 for ( ;; ) {if (b->pos > b->last) { 此时 b->pos 0x5cd4701487e4 b->last 0x5cd47014893c b->start0x5cd4701487d0 条件不成立 ch *b->pos;…...
L2范数与权重衰退
权重衰退 定义损失函数 $ \ell(\mathbf{w}, b) $ 来衡量模型的预测值与真实值的差距 使用L2范数作为硬性限制 通过限制参数值的选择范围来控制模型容量 min ℓ ( w , b ) s u b j e c t t o ∥ w ∥ 2 ≤ θ \min \ell(\mathbf{w}, b) \quad \\ subject \ to \|\mathbf{w…...
计算机组成原理笔记(十四)——3.4指令类型
一台计算机的指令系统可以有上百条指令,这些指令按其功能可以分成几种类型,下面分别介绍。 3.4.1数据传送类指令 一、核心概念与功能定位 数据传送类指令是计算机指令系统中最基础的指令类型,负责在 寄存器、主存、I/O设备 之间高效复制数…...
GM DC Monitor v2.0 数据中心监控预警平台-CMDB使用教程(第九篇)
SNMP配置管理功能使用手册 本模块主要用于导入设备厂家的mib库文件,也可以手工创建对应的oid信息,用以实现设备的被动监控功能。 另:系统部署完毕后,已经集成了个别厂家的MIB库数据。 设计思路及使用教程 设计思路:通…...
try-with-resources 详解
try-with-resources 详解 一、基本概念 try-with-resources 是 Java 7 引入的语法结构,用于自动管理资源(如文件流、数据库连接等需要关闭的对象)。 核心特点 自动资源释放:无需手动调用 close() 简洁代码:减少 tr…...
第二十四:查看当前 端口号是否被占用
查看当前 端口号是否被占用: mac 情况下: lsof -i :端口号 netstat -an | grep 端口号 系统将显示监听该端口的进程信息,包括进程名称、进程ID、用户和协议等。如果需要更多信息,可以添加-P和-n参数,例如…...
【数据结构与算法】——堆(补充)
前言 上一篇文章讲解了堆的概念和堆排序,本文是对堆的内容补充 主要包括:堆排序的时间复杂度、TOP 这里写目录标题 前言正文堆排序的时间复杂度TOP-K 正文 堆排序的时间复杂度 前文提到,利用堆的思想完成的堆排序的代码如下(包…...
【Web功能测试】Web商城搜索模块测试用例设计深度解析
Web商城的搜索模块功能测试用例设计 1.搜索功能设计 1.1 搜索框设计 位置显眼:通常置于页面顶部中央,符合用户习惯。 智能提示(Autocomplete):输入时实时推荐关键词、商品或分类(如“手机 苹果”&#x…...
ubuntu 18.04安装tomcat,zookeeper,kafka,hadoop,MySQL,maxwell
事情是这样的,因为昨天发现我用的ubuntu16.04官方不维护了,以及之前就觉得不是很好用,于是升级到了18.04。如图: 但是!由于为备份升级前忘记关闭服务,上面装好的东西所剩无几。 于是我重装了。。。 如何启…...
设计模式(结构型)-享元模式
摘要 在软件开发的广阔领域中,随着系统规模的不断膨胀,资源的有效利用逐渐成为了一个至关重要的议题。当一个系统中存在大量相似的对象时,如何优化这些对象的管理,减少内存的占用,提升系统的整体性能,成为了…...
1.1显存
显存是显卡(GPU)专用的高性能内存,负责存储渲染所需的纹理、帧缓冲、几何数据等。其设计直接影响图形性能、分辨率和复杂场景处理能力 苹果统一内存(Unified Memory)、集成显卡共享内存(Integrated Graphi…...
C# 选择文件的路径、导出文件储存路径
1、选择导入文件,获取其路径 C#通过这段代码将弹出一个文件选择对话框,允许用户选择一个文件,并返回所选文件的完整路径。如果用户取消了选择,则直接返回结束函数。 string OpenFilePath;//存储选择到的文件的完整路径OpenFileDia…...
【最后203篇系列】027 基于消息队列的处理架构
起因 之所以写这篇文章,主要是梳理一下进展。因为同时研究好几块内容,切换起来要点时间。这次也是因为协作的同事们把各自的分工都搞定了,瓶颈反而在我自己这里,哈哈。 除了帮自己思路恢复过来,我觉得这方法可能也有…...
多线程与Tkinter界面交互
在现代图形用户界面(GUI)应用程序中,可能会遇到需要长时间运行的任务,例如网络请求、数据处理或文件读取等。如果这些任务直接在主线程中运行,会导致GUI界面“卡顿”或“不响应”。为了保持界面流畅和响应用户操作,我们可以通过使用多线程来将这些任务移到后台运行。然而…...
【工程开发】LLMC准确高效的LLM压缩工具(一)
【文献阅读】LLMC: Benchmarking Large Language Model Quantization with a Versatile Compression Toolkit 北航 2024年10月 摘要 大语言模型(LLMs)的最新进展凭借其卓越的涌现能力和推理能力,正推动我们迈向通用人工智能。然而&#…...
回顾CSA,CSA复习
RHCSA redhat certificate system Administrator RHCE redhat certificate engineer 回顾CSA 文件管理 创建文件:touch 、重定向、vim 阅读文件:cat看短小的文件、vim、head看文件前面部分、tail看文件的尾部内容、more、less看文档使用more和less…...
基于电子等排体的3D分子生成模型 ShEPhERD - 评测
一、背景介绍 ShEPhERD 是一个由 MIT 开发的一个 3D 相互作用感知的 ligand-based的分子生成模型,以 arXiv 预印本的形式发表于 2024 年,被ICLR2025 会议接收。文章链接:https://openreview.net/pdf?idKSLkFYHlYg ShEPhERD 是一种基于去噪扩…...
平凡日子里的挣扎
2025年4月13日,9~23℃,好 待办: 融智云考平台《物理》《物理2》~~《地理》《地理1》~~重修试卷 卫健委统考监考(2025年4月12日早上7点半) 冶金《物理》课程标准 冶金《物理》教案 期中教学检查——自查表材料ÿ…...
智能制造方案精读:117页MES制造执行系统解决方案【附全文阅读】
本方案围绕制造执行系统(MES)展开,阐述了智能制造相关概念及发展趋势,指出 MES 是连接 ERP 与生产现场的关键系统。介绍其在加工、装配及其他场景的应用,通过实例展示各场景下的功能、特点和实施效果,如实现生产信息可视化、产品追溯、设备监控等。还提及实施 MES 面临的…...
[推荐]AI驱动的知识图谱生成器(AI Powered Knowledge Graph Generator)
网址:https://github.com/robert-mcdermott/ai-knowledge-graph# 一、介绍 简介:以非结构化文本文档为输入,使用您选择的LLM以主语-谓语-宾语 (SPO) 三元组的形式提取知识,并将这些关系可视化为交互式知识图谱 特点:…...
波束形成(BF)从算法仿真到工程源码实现-第七节-关于波束10个基本概念
一、波束10个基本概念 1.作用: 对多路麦克风信号进行合并处理,抑制非目标方向的干扰信号,增强目标方向的声音信号。 2.原理: 调整相位阵列的基本单元参数,使得某些角度的信号获得相长干涉,而另一些角度的…...
深度学习(第一集)
123 import torch# 创建一个需要计算梯度的张量 x1 torch.tensor([2.0], requires_gradTrue)# 定义一个简单的函数 y x^2 y x1 ** 4# 计算梯度 y.backward()print("x1.grad 的值:", ) # 打印 x1.grad print("x1.grad 的值:", x1…...
Spring 事务传播行为
在Spring框架中,事务传播行为(Transaction Propagation)定义了事务在多个方法调用之间的行为方式。理解这些传播行为对于设计可靠的事务管理策略至关重要。以下是Spring支持的七种事务传播行为及其应用场景的详细说明: 1. REQUIRED(默认) 行为:如果当前存在事务,则加入…...
搬运机器人的基本工作场景及原理
搬运机器人广泛应用于工业生产中,主要用于搬运、堆放、装配等工作。它通过机械手臂的运动,结合机器视觉技术完成各种自动化作业。 一、搬运机器人的设计原理 搬运机器人通常采用可移动门架式结构,手臂承载机构安装在导轨上,可以沿…...