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

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.19 排序革命:argsort的十大高阶用法

在这里插入图片描述

1.19 排序革命:argsort的十大高阶用法

目录
排序革命:argsort的十大高阶用法
多列排序的稳定实现方案
按自定义规则排序的秘籍
分块排序外存算法实现
推荐系统Top-K检索优化

1.19.1 多列排序的稳定实现方案

在处理多列数据时,使用 NumPyargsort 进行排序是一个非常高效的方法。本节将详细介绍如何使用 lexsort 进行多列排序,并测试其稳定性。

高级排序
多键排序
自定义排序
大数据处理
推荐系统
lexsort
拼音排序
外存排序
相似度排序
1.19.1.1 多键排序的lexsort使用详解

lexsortNumPy 提供的一个函数,用于按多个键进行排序。lexsort 的排序顺序是从后向前,即最右边的键是主要排序键,最左边的键是次要排序键。

import numpy as np# 创建多列数据
data = np.array([[3, 7, 1],[1, 3, 2],[2, 5, 0],[1, 2, 3],[3, 1, 2]
])# 使用 lexsort 进行排序
sorted_indices = np.lexsort((data[:, 2], data[:, 1], data[:, 0]))  # 按第0列、第1列、第2列排序
sorted_data = data[sorted_indices]  # 按索引排序数据# 打印排序结果
print("原始数据: ")
print(data)
print("排序后的数据: ")
print(sorted_data)
78% 22% 排序方法性能对比(百万数据) lexsort 复合键argsort
1.19.1.2 排序稳定性测试方案

排序算法的稳定性是指在排序过程中,相等的元素的相对位置不会发生变化。NumPyargsortlexsort 都是稳定的排序算法。本节将通过一个测试方案来验证这一点。

import numpy as np# 创建一个包含重复元素的数组
data = np.array([3, 1, 2, 1, 2, 3])# 使用 argsort 进行排序
sorted_indices = np.argsort(data, kind='stable')  # 指定稳定排序算法
sorted_data = data[sorted_indices]# 打印排序结果
print("原始数据: ", data)
print("排序后的数据: ", sorted_data)
print("排序索引: ", sorted_indices)# 创建多列数据
multi_data = np.array([[3, 7, 1],[1, 3, 2],[2, 5, 0],[1, 2, 3],[3, 1, 2]
])# 使用 lexsort 进行排序
sorted_indices_lex = np.lexsort((multi_data[:, 2], multi_data[:, 1], multi_data[:, 0]))
sorted_multi_data = multi_data[sorted_indices_lex]# 打印排序结果
print("原始多列数据: ")
print(multi_data)
print("排序后的多列数据: ")
print(sorted_multi_data)
print("排序索引: ", sorted_indices_lex)

1.19.2 按自定义规则排序的秘籍

在某些场景下,我们可能需要根据自定义规则对数据进行排序。本节将介绍如何实现中文拼音排序和自定义排序函数。

1.19.2.1 中文拼音排序自定义函数

中文排序通常需要根据拼音序进行。我们可以使用 pypinyin 库来实现这一点。

import numpy as np
from pypinyin import pinyin, lazy_pinyin, Style# 创建一个包含中文字符串的数组
data = np.array(['张三', '李四', '王五', '赵六', '钱七'])# 定义拼音排序函数
def sort_by_pinyin(arr):"""根据拼音排序中文字符串:param arr: 输入的中文字符串数组:return: 排序后的数组"""# 将中文字符串转换为拼音pinyin_list = [lazy_pinyin(name) for name in arr]# 按拼音排序sorted_indices = np.argsort(pinyin_list, kind='stable')  # 指定稳定排序算法sorted_data = arr[sorted_indices]return sorted_data# 进行拼音排序
sorted_data = sort_by_pinyin(data)# 打印排序结果
print("原始数据: ", data)
print("拼音排序后的数据: ", sorted_data)
1.19.2.2 图解自定义排序函数
graph TBA[自定义排序函数]A --> B1[定义排序规则]A --> B2[转换排序键]A --> B3[使用 argsort 排序]B1 --> C1[例如:拼音排序]B2 --> C2[将中文名转换为拼音]B3 --> C3[按拼音排序索引]

1.19.3 分块排序外存算法实现

处理大规模数据时,内存限制往往是瓶颈。分块排序是一种有效的外存排序算法,本节将介绍如何在 10GB 数据上实现分块排序。

1.19.3.1 10GB数据的外部排序实现
import numpy as np
import os# 定义分块大小
chunk_size = 1000000# 生成 10GB 的数据
data = np.random.rand(100000000)  # 1亿条数据
data.tofile('data.npy')  # 保存为二进制文件# 分块读取并排序
def external_sort(file_path, chunk_size, output_file):"""外存排序:param file_path: 输入文件路径:param chunk_size: 分块大小:param output_file: 输出文件路径"""# 读取文件大小file_size = os.path.getsize(file_path)data_type_size = data.dtype.itemsizetotal_elements = file_size // data_type_size# 创建临时文件列表temp_files = []# 分块读取并排序for i in range(0, total_elements, chunk_size):chunk = np.fromfile(file_path, dtype=np.float64, count=chunk_size, offset=i * data_type_size)sorted_chunk = np.sort(chunk, kind='stable')  # 指定稳定排序算法temp_file = f'temp_{i // chunk_size}.npy'np.save(temp_file, sorted_chunk)temp_files.append(temp_file)# 合并排序后的分块with open(output_file, 'wb') as f_out:merge_sorted(temp_files, chunk_size, f_out)# 合并排序后的分块
def merge_sorted(temp_files, chunk_size, output_file):"""合并排序后的分块:param temp_files: 临时文件列表:param chunk_size: 分块大小:param output_file: 输出文件对象"""# 打开所有临时文件files = [np.load(temp_file) for temp_file in temp_files]# 初始化索引和分块读取indices = [0] * len(files)chunks = [file[:chunk_size] for file in files]while True:# 找到当前最小值的索引min_index = Nonemin_value = float('inf')for i, chunk in enumerate(chunks):if len(chunk) > 0 and chunk[0] < min_value:min_value = chunk[0]min_index = iif min_index is None:break# 将最小值写入输出文件output_file.write(chunks[min_index][0].tobytes())# 更新分块读取索引indices[min_index] += 1chunks[min_index] = files[min_index][indices[min_index]:indices[min_index] + chunk_size]# 关闭所有临时文件for file in files:file.close()# 删除临时文件for temp_file in temp_files:os.remove(temp_file)# 进行外部排序
external_sort('data.npy', chunk_size, 'sorted_data.npy')
1.19.3.3 外存排序流程图
分块排序外存算法
生成大规模数据
分块读取并排序
合并排序后的分块
生成 10GB 的数据
读取分块
排序分块
保存分块
读取所有分块
合并分块
写入输出文件
删除临时文件

1.19.4 推荐系统Top-K检索优化

在推荐系统中,Top-K 检索是一个常见的需求。本节将介绍如何使用 NumPyargsort 进行向量相似度排序,并优化 Top-K 检索的性能。

1.19.4.1 推荐系统的向量相似度排序

推荐系统中的向量相似度排序通常涉及大量的向量计算。我们可以使用 NumPyargsort 来高效地实现这一点。

import numpy as np# 生成用户和物品的向量
user_vectors = np.random.rand(1000000, 10)  # 100万用户,每个用户10维向量
item_vectors = np.random.rand(1000, 10)  # 1000个物品,每个物品10维向量# 计算相似度
def compute_similarity(user_vectors, item_vectors):"""计算用户向量和物品向量的相似度:param user_vectors: 用户向量:param item_vectors: 物品向量:return: 相似度矩阵"""user_vectors = user_vectors / np.linalg.norm(user_vectors, axis=1, keepdims=True)  # 归一化用户向量item_vectors = item_vectors / np.linalg.norm(item_vectors, axis=1, keepdims=True)  # 归一化物品向量similarity_matrix = np.dot(user_vectors, item_vectors.T)  # 计算相似度矩阵return similarity_matrix# 获取 Top-K 推荐
def get_top_k_recommendations(similarity_matrix, k):"""获取每个用户的 Top-K 推荐物品:param similarity_matrix: 相似度矩阵:param k: 推荐数量:return: Top-K 推荐索引矩阵"""# 获取每个用户的 Top-K 推荐物品索引top_k_indices = np.argsort(-similarity_matrix, axis=1)[:, :k]  # 按相似度降序排序并取前k个return top_k_indices# 计算相似度并获取 Top-K 推荐
similarity_matrix = compute_similarity(user_vectors, item_vectors)
top_k_indices = get_top_k_recommendations(similarity_matrix, k=10)# 打印前10个用户的 Top-K 推荐物品索引
print("前10个用户的 Top-K 推荐物品索引: ")
print(top_k_indices[:10])
1.19.4.2 图解相似度排序
相似度排序
生成用户和物品向量
归一化向量
计算相似度矩阵
获取 Top-K 推荐索引
生成 100万用户向量
生成 1000物品向量
归一化用户向量
归一化物品向量
计算相似度矩阵
按相似度降序排序
取前k个物品索引
稳定性验证矩阵
算法稳定时间复杂度适用场景
mergesortO(n log n)需要稳定排序
quicksortO(n log n)通用场景
heapsortO(n log n)内存受限

总结

通过本篇文章的详细讲解和示例,我们对 NumPy 中的 argsort 函数有了更深入的理解。主要内容包括:

  1. 多列排序的稳定实现方案:介绍了 lexsort 的使用方法,并测试了其稳定性。
  2. 按自定义规则排序的秘籍:展示了如何实现中文拼音排序,并提供了一个图解自定义排序函数的流程图。
  3. 分块排序外存算法实现:通过一个 10GB 数据的外部排序实现示例,展示了如何处理大规模数据。
  4. 推荐系统Top-K检索优化:介绍了推荐系统中的向量相似度排序,并通过示例展示了如何高效地进行 Top-K 检索。

希望这些内容对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言。我们下一篇文章再见!

参考资料

资料名称链接
NumPy 官方文档https://numpy.org/doc/stable/
lexsort 详解https://numpy.org/doc/stable/reference/generated/numpy.lexsort.html
排序稳定性测试https://numpy.org/doc/stable/user/basics.sort.html
pypinyin 库https://pypi.org/project/pypinyin/
外存排序算法https://en.wikipedia.org/wiki/External_sorting
推荐系统Top-K检索https://towardsdatascience.com/fast-topk-search-with-numpy-384c33e04ddc
大规模数据处理https://www.jianshu.com/p/1c8b4d7b0e1a
向量相似度计算https://towardsdatascience.com/understanding-feature-vector-similarity-and-its-applications-9d505b3f08cd
外存排序实现https://www.cnblogs.com/onepixel/articles/7674659.html
推荐系统优化https://developers.google.com/machine-learning/recommendation/similar/algorithm
分块排序优化https://www.dataknowledge.cn/dhj/guanchan/1811759736723408-N.html
多列排序应用https://www.geeksforgeeks.org/numpy-lexsort-in-python/
外部排序算法https://www.oreilly.com/library/view/algorithms-in-a/9780596576469/ch06s06.html
推荐系统实战https://www.kdnuggets.com/2018/11/building-recommendation-system-python.html

这篇文章包含了详细的原理介绍、代码示例、源码注释以及案例等。希望这对您有帮助。如果有任何问题请随私信或评论告诉我。

相关文章:

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.19 排序革命:argsort的十大高阶用法

1.19 排序革命&#xff1a;argsort的十大高阶用法 目录 #mermaid-svg-Qu8PcmLkIc1pOQJ7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Qu8PcmLkIc1pOQJ7 .error-icon{fill:#552222;}#mermaid-svg-Qu8PcmLkIc1pOQJ…...

记忆力训练day07

逻辑分类联想记忆法 一 课程目标 &#xff08;1&#xff09;掌握如何分类信息 &#xff08;2&#xff09;掌握如何运用逻辑分类方法进行记忆 小试牛刀&#xff1a; 核心的内容&#xff1a; 文字逻辑分类记忆&#xff1a;把文字分类后转换成画面连接记忆。 玫瑰 大树 太阳…...

RK3588平台开发系列讲解(ARM篇)ARM64底层中断处理

文章目录 一、异常级别二、异常分类2.1、同步异常2.2、异步异常三、中断向量表沉淀、分享、成长,让自己和他人都能有所收获!😄 一、异常级别 ARM64处理器确实定义了4个异常级别(Exception Levels, EL),分别是EL0到EL3。这些级别用于管理处理器的特权级别和权限,级别越高…...

算法1-1 模拟与高精度

目录 一 阶乘数码 二 麦森数 三 模拟题 一 阶乘数码 本题中n<1000,1000的阶乘为以下这么大&#xff0c;远超long的范围 402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901…...

(四)线程 和 进程 及相关知识点

目录 一、线程和进程 &#xff08;1&#xff09;进程 &#xff08;2&#xff09;线程 &#xff08;3&#xff09;区别 二、串行、并发、并行 &#xff08;1&#xff09;串行 &#xff08;2&#xff09;并行 &#xff08;3&#xff09;并发 三、爬虫中的线程和进程 &am…...

Tensor 基本操作2 理解 tensor.max 操作,沿着给定的 dim 是什么意思 | PyTorch 深度学习实战

前一篇文章&#xff0c;Tensor 基本操作1 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 目录 Tensor 基本操作torch.max默认指定维度 Tensor 基本操作 torch.max torch.max 实现降维运算&#xff0c;基于指定的 d…...

[牛客]公交线路(dijkstra+链式前向星)

登录—专业IT笔试面试备考平台_牛客网 #include<bits/stdc.h> using namespace std; #define endl \n typedef long long ll; const int N1e65,M1e85; int cnt0,head[N]; int n,m,s,t; struct node {int v,w,next; }edge[M]; void addedge(int u,int v,int w) {cnt;edge…...

面试被问的一些问题汇总(持续更新)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

RocketMQ原理—5.高可用+高并发+高性能架构

大纲 1.RocketMQ的整体架构与运行流程 2.基于NameServer管理Broker集群的架构 3.Broker集群的主从复制架构 4.基于Topic和Queue实现的数据分片架构 5.Broker基于Pull模式的主从复制原理 6.Broker层面到底如何做到数据0丢失 7.数据0丢失与写入高并发的取舍 8.RocketMQ读…...

适配器模式——C++实现

目录 1. 适配器模式简介 2. 角色组成 3. 代码示例 4. 适配器模式、装饰器模式、外观模式的辨析 1. 适配器模式简介 适配器模式是一种结构型模式。 适配器模式的定义&#xff1a;适配器模式将一个类的接口&#xff0c;转换成客户期望的另一个接口。适配器让原本接口不可兼容…...

C语言自定义数据类型详解(一)——结构体类型(上)

什么是自定义数据类型呢&#xff1f;顾名思义&#xff0c;就是我们用户自己定义和设置的类型。 在C语言中&#xff0c;我们的自定义数据类型一共有三种&#xff0c;它们分别是&#xff1a;结构体(struct)&#xff0c;枚举(enum)&#xff0c;联合(union)。接下来&#xff0c;我…...

C语言基础4

sizeof和strlen的区别 ①sizeof是运算符而strlen是函数 ②sizeof可以用类型做参数&#xff0c;strlen只能用char*做参数 ③数组做sizeof参数不退化&#xff0c;而传递给strlen则退化成指针 ④strlen结果是运行时候才能计算出来&#xff0c;而且计算出来的是字符串的长度不是内…...

【Elasticsearch】Elasticsearch的查询

Elasticsearch的查询 DSL查询基础语句叶子查询全文检索查询matchmulti_match 精确查询termrange 复合查询算分函数查询bool查询 排序分页基础分页深度分页 高亮高亮原理实现高亮 RestClient查询基础查询叶子查询复合查询排序和分页高亮 数据聚合DSL实现聚合Bucket聚合带条件聚合…...

第 5 章:声音与音乐系统

5.1 声音效果的应用 在游戏中&#xff0c;声音效果是增强游戏沉浸感和趣味性的重要元素。Pygame 提供了强大的音频处理功能&#xff0c;使得添加各种声音效果变得相对简单。声音效果可以包括角色的动作音效&#xff0c;如跳跃、攻击、受伤时的声音&#xff1b;环境音效&#x…...

第十四讲 JDBC数据库

1. 什么是JDBC JDBC&#xff08;Java Database Connectivity&#xff0c;Java数据库连接&#xff09;&#xff0c;它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库&#xff0c;并使用SQL语句来完成对数据库中数据的查询、新增、更新和删除等操作…...

2024年除夕

多少年前的除夕&#xff0c;一如今天这样的除夕&#xff1b;多少年后的除夕&#xff0c;也一如多少年前的除夕。 无数个这样的除夕下午&#xff0c;我打开电脑&#xff0c;望着窗外安静的小区&#xff0c;车声渐渐稀疏的马路&#xff0c;想写下一些新的感受时&#xff0c;多少…...

虚幻基础07:蓝图接口

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 作用原理事件函数 作用 实现对象间的通知。 A 通知 B 做什么。 原理 将接口抽象为蓝图&#xff0c;使得任意蓝图都能直接访问。 只需要再传入对象地址&#xff0c;就能执行对象的功能。 事件 黄色&#xff1a;…...

7. 马科维茨资产组合模型+金融研报AI长文本智能体(Qwen-Long)增强方案(理论+Python实战)

目录 0. 承前1. 深度金融研报准备2. 核心AI函数代码讲解2.1 函数概述2.2 输入参数2.3 主要流程2.4 异常处理2.5 清理工作2.7 get_ai_weights函数汇总 3. 汇总代码4. 反思4.1 不足之处4.2 提升思路 5. 启后 0. 承前 本篇博文是对前两篇文章&#xff0c;链接: 5. 马科维茨资产组…...

如何在本地部署deepseek r1模型?

DeepSeek&#xff08;深度求索&#xff09;正式发布了其最新推理模型DeepSeek-R1&#xff0c;引发业界广泛关注。这款模型不仅在性能上与OpenAI的GPT-4相媲美&#xff0c;更以其开源策略和创新的训练方法&#xff0c;为AI发展带来了新的可能性。DeepSeek-R1 在后训练阶段大规模…...

HarmonyOS:状态管理最佳实践

一、概述 在声明式UI编程范式中&#xff0c;UI是应用程序状态的函数&#xff0c;应用程序状态的修改会更新相应的UI界面。ArkUI采用了MVVM模式&#xff0c;其中ViewModel将数据与视图绑定在一起&#xff0c;更新数据的时候直接更新视图。如下图所示&#xff1a; ArkUI的MVVM模式…...

当AI风暴来袭:中美科技商业版图的迥异走向

当AI风暴来袭:中美科技商业版图的迥异走向 美国科技巨头的 AI 豪赌:Stargate 公司的诞生 2025 年,科技界被一则重磅消息所震动:软银、NVIDIA、Oracle 与 OpenAI 共同组建了 Stargate 公司。这一合作堪称豪华阵容,软银作为全球知名的投资巨头,拥有雄厚的资金实力和广泛的…...

马尔科夫模型和隐马尔科夫模型区别

我用一个天气预报和海藻湿度观测的比喻来解释&#xff0c;保证你秒懂&#xff01; 1. 马尔可夫模型&#xff08;Markov Model, MM&#xff09; 特点&#xff1a;状态直接可见 场景&#xff1a;天气预报&#xff08;晴天→雨天→阴天…&#xff09;核心假设&#xff1a; 下一个…...

面向对象设计原则 - SOLID原则 (基于C++)

SOLID 是面向对象编程中的一组五个设计原则&#xff0c;这些原则旨在帮助开发者创建更灵活、可维护和可扩展的软件系统。它们最初由 Robert C. Martin 提出&#xff0c;并在 2000 年左右被广泛接受。每个字母代表一个不同的原则&#xff1a; 单一职责原则 (Single Responsibil…...

ChatGPT 搜索测试整合记忆功能

据 TestingCatalog 报道&#xff0c;OpenAI 正在测试 ChatGPT 搜索的整合记忆功能&#xff0c;被命名为 “Memory in search”2。以下是关于该功能的具体情况123&#xff1a; 功能特点 个性化搜索&#xff1a;启用该功能后&#xff0c;ChatGPT 能利用存储的记忆数据&#xff0…...

PWM频率测量方法

测量PWM&#xff08;脉宽调制&#xff09;信号的频率是嵌入式系统中的常见需求&#xff0c;尤其是在电机控制、LED调光、传感器信号处理等场景中。 在这里介绍两种测量PWM频率的方法&#xff1a;测频法与测周法。 1、测频&#xff08;率&#xff09;法 原理&#xff1a;在闸门…...

【B站保姆级视频教程:Jetson配置YOLOv11环境(一)镜像下载与烧录】

b站同步视频教程&#xff1a;https://www.bilibili.com/video/BV11r6oYkEFb/ 一、引言 在人工智能与计算机视觉快速发展的当下&#xff0c;Jetson系列开发板凭借强大的性能&#xff0c;成为众多开发者进行深度学习项目的热门选择。YOLOv11作为目标检测领域的先进算法&#xf…...

使用QSqlQueryModel创建交替背景色的表格模型

class UserModel(QSqlQueryModel):def __init__(self):super().__init__()self._query "SELECT name, age FROM users"self.refresh()def refresh(self):self.setQuery(self._query)# 重新定义data()方法def data(self, index, role): if role Qt.BackgroundRole…...

计算机网络__基础知识问答

Question: 1&#xff09;在计算机网络的5层结构中&#xff0c;每一层的功能大概是什么&#xff1f; 2&#xff09;交换机的功能&#xff1f;https://www.bilibili.com/video/BV1na4y1L7Ev 3&#xff09;路由器的功能&#xff1f;https://www.bilibili.com/video/BV1hv411k7n…...

C语言数组详解:从基础到进阶的全面解析

在C语言中&#xff0c;数组是一种基本的数据结构&#xff0c;用于存储多个相同类型的数据。数组的引入使得C语言能够高效地存储和操作大量数据。在任何一个C语言程序中&#xff0c;数组都发挥着极其重要的作用。无论是在算法实现、数据存储、还是在复杂程序的设计中&#xff0c…...

微前端架构在前端开发中的实践与挑战

随着单页面应用&#xff08;SPA&#xff09;和前端框架如 React、Vue、Angular 的快速发展&#xff0c;现代前端应用的复杂度日益提升。尤其是当应用规模逐渐增大时&#xff0c;单一的代码库往往难以应对不同团队的协作和版本管理问题。为了应对这一挑战&#xff0c;微前端架构…...

国内flutter环境部署(记录篇)

设置系统环境变量 export PUB_HOSTED_URLhttps://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URLhttps://storage.flutter-io.cn使用以下命令下载flutter镜像 git clone -b stable https://mirror.ghproxy.com/https://github.com/<github仓库地址>#例如flutter仓…...

Julia DataFrames.jl:深入理解和使用

随着数据科学和机器学习的发展&#xff0c;数据框架广泛应用于数据处理与分析工作中。在 Julia 语言中&#xff0c;DataFrames.jl 是一个强大且灵活的数据框库&#xff0c;为数据操作提供了丰富的功能。本文旨在系统地介绍 DataFrames.jl 的基础概念、使用方法、常见实践和最佳…...

上位机知识篇---DDSSDK

文章目录 前言第一部分&#xff1a;DDS核心特性1.以数据为中心2.发布-订阅模型3.质量服务4.多语言支持 关键概念1.主题2.发布者3.订阅者4. 数据写入者5.数据读取者6.域参与者7.域 DDS的优势1.可伸缩性2.实时性3.可靠性4.容错性 DDS的应用场景1.军事通信系统2.航空航天3.工业自动…...

基于DeepSeek在藏语学习推广和藏语信息化方面可以做哪些工作?

基于DeepSeek对藏语的技术优势&#xff0c;您可在以下三大方向开展创新性工作&#xff0c;以下是20具体落地方案&#xff1a; 一、藏语智能教育工具开发 《三十颂》AI语法教练 开发虚拟助教自动解析藏文句子结构&#xff08;标注格助词/时态变化&#xff09;错误检测系统&…...

如何把obsidian的md文档导出成图片,并加上文档属性

上篇关于这个插件PKMer_Obsidian 插件&#xff1a;Export Image plugin 一键将笔记转换为图片分享的文章 如何把obsidian的md文档导出成图片&#xff0c;并加上水印-CSDN博客 如何导出图片的时候让文档属性也显示出来&#xff0c;啊啊&#xff0c;这个功能找了一晚上&#xf…...

AUTOSAR从入门到精通-车身控制系统BCM(三)

目录 前言 算法原理 什么是车身控制模块BCM 1. BCM ECU的工作原理 a. 硬件架构 b. 控制逻辑 BCM带来的好处 车身控制模块(BCM)的功用 车身控制模块(BCM)能够控制的车身功能系统 BCM的各项功能 1.1内外部灯光控制 1.2 雨刮系统 1.3 车身防盗报警系统 1.4 车锁…...

删除全表数据sql

-- 删除 employees 表中的所有数据 DELETE FROM employees;-- 清空 employees 表中的所有数据 TRUNCATE TABLE employees;TRUNCATE 操作不记录每一行的删除操作&#xff0c;而是直接释放数据页&#xff0c;所以执行速度通常比 DELETE 快。不过它不能和 WHERE 子句一起使用&…...

Winform如何取消叉号,减号和放大(两种)

方法一: 找到窗体属性 MaximizeBoxFalse; MinimizeBoxFalse; ControlBoxFALSE; 方法二: 点击Form 在From里面找到Form-Closing 这个事件 写入 if(e.CloseReasonCloseReason.UserClosing) { MessageBox.Show("对不起,你不能关闭") e.Cancel true; }...

Couchbase UI: Query

Couchbase 的 Query 页面在 UI 中是一个核心功能模块&#xff0c;支持 N1QL 查询的编写、调试和优化。同时&#xff0c;它也扩展了与查询相关的功能&#xff0c;比如 Workbench、Monitor 和 UDF 管理。这些功能让开发者和管理员能够更加高效地管理数据查询和性能优化。 以下是…...

Word 中实现方框内点击自动打 √ ☑

注&#xff1a; 本文为 “Word 中方框内点击打 √ ☑ / 打 ☒” 相关文章合辑。 对第一篇增加了打叉部分&#xff0c;第二篇为第一篇中方法 5 “控件” 实现的详解。 在 Word 方框内打 √ 的 6 种技巧 2020-03-09 12:38 使用 Word 制作一些调查表、检查表等&#xff0c;通常…...

Go优雅实现redis分布式锁

前言 系统为了保证高可用&#xff0c;通常会部署多实例&#xff0c;并且会存在同时对共享资源并发读写&#xff0c;这时候为了保证读写的安全&#xff0c;常规手段是会引入分布式锁&#xff0c;本文将介绍如何使用redis设计一个优雅的Go分布式锁。 设计 redis分布式锁是借助…...

A7. Jenkins Pipeline自动化构建过程,可灵活配置多项目、多模块服务实战

服务容器化构建的环境配置构建前需要解决什么下面我们带着问题分析构建的过程:1. 如何解决jenkins执行环境与shell脚本执行环境不一致问题?2. 构建之前动态修改项目的环境变量3. 在通过容器打包时避免不了会产生比较多的不可用的镜像资源,这些资源要是不及时删除掉时会导致服…...

Controller 层优化四步曲

Controller 层优化四步曲 前言 在开发过程中&#xff0c;Controller 层作为系统与外界交互的桥梁&#xff0c;承担着接收请求、解析参数、调用业务逻辑、处理异常等职责。 然而&#xff0c;随着业务复杂度的增加&#xff0c;Controller 层的代码往往会变得臃肿且难以维护。 …...

自动化运维在云环境中的完整实践指南

随着云计算的普及,越来越多的企业将业务迁移到云上。云环境的高动态性和复杂性使得传统的手动运维方式难以应对,自动化运维成为提升效率、降低成本、保障系统稳定性的关键。本文将详细介绍如何在云环境中实施自动化运维,涵盖工具选择、实施步骤和最佳实践。 © ivwdcwso…...

electron typescript运行并设置eslint检测

目录 一、初始化package.json 二、安装依赖 三、项目结构 四、配置启动项 五、补充&#xff1a;ts转js别名问题 一、初始化package.json 我的&#xff1a;这里的"main"没太大影响&#xff0c;看后面的步骤。 {"name": "xloda-cloud-ui-pc"…...

DiffuEraser: 一种基于扩散模型的视频修复技术

视频修复算法结合了基于流的像素传播与基于Transformer的生成方法&#xff0c;利用光流信息和相邻帧的信息来恢复纹理和对象&#xff0c;同时通过视觉Transformer完成被遮挡区域的修复。然而&#xff0c;这些方法在处理大范围遮挡时常常会遇到模糊和时序不一致的问题&#xff0…...

《Operating System Concepts》阅读笔记:p1-p1

《Operating System Concepts》学习第 1 天&#xff0c;p1-p1 总结&#xff0c;总计 1 页。 一、技术总结 无。 二、英语总结(生词&#xff1a;1) 1.intermediary (1)intermediary: inter-(“between, among”) medius(“middle”) c.intermediary originally referred …...

9.8 实战:使用 GPT Builder 开发定制化 ChatGPT 应用

实战:使用 GPT Builder 开发定制化 ChatGPT 应用 引言:打造属于你的智能助手 定制化 ChatGPT 应用正在成为解决具体问题和提升生产力的关键工具。GPT Builder 提供了一个灵活、直观的平台,让开发者和非技术用户都能快速创建满足特定需求的智能助手。本文将通过一个实战案例…...

团体程序设计天梯赛-练习集——L1-024 后天

前言 首先祝大家新年快乐&#xff0c;然后博主今点炮让炮崩了一下&#xff0c;水一天 这道题5分非常简单&#xff0c;有不少的做法 L1-024 后天 如果今天是星期三&#xff0c;后天就是星期五&#xff1b;如果今天是星期六&#xff0c;后天就是星期一。我们用数字1到7对应星期…...

基于STM32的智能语音控制灯光系统设计

目录 引言系统设计 硬件设计软件设计 系统功能模块 语音识别模块灯光控制模块模式切换与场景管理模块用户交互与显示模块远程控制与数据上传模块 控制算法 语音识别与命令解析算法灯光强度与颜色调节算法数据记录与远程反馈算法 代码实现 语音识别与灯光控制代码场景模式与定时…...