特征值与特征向量:从理论到应用的全面解析
特征值与特征向量:从理论到应用的全面解析
一、特征值与特征向量核心概念
定义
对于方阵 ( A ),若存在标量 ( \lambda ) 和非零向量 ( v ),使得:
[
A v = \lambda v
]
则 ( \lambda ) 为特征值,( v ) 为对应的特征向量。
几何意义
特征向量在线性变换后保持方向不变,仅被特征值 ( \lambda ) 缩放。
二、完整实例:PCA降维
步骤说明(Python实现)
import numpy as np
from sklearn.decomposition import PCA# 1. 生成模拟数据
data = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9], [1.9, 2.2], [3.1, 3.0]])# 2. 标准化数据
mean = np.mean(data, axis=0)
std_data = data - mean# 3. 计算协方差矩阵
cov_matrix = np.cov(std_data.T)# 4. 特征分解
eigenvalues, eigenvectors = np.linalg.eig(cov_matrix)# 5. 选择主成分(取最大特征值对应的特征向量)
pca = PCA(n_components=1)
transformed_data = pca.fit_transform(std_data)print("降维结果:\n", transformed_data)
输出解释
原二维数据通过保留最大特征值对应的特征向量,投影到一维空间。
三、机器学习应用场景
-
主成分分析(PCA)
- 作用:通过协方差矩阵的特征分解,提取数据主要方向,实现降维。
- 场景:高维数据可视化、去除冗余特征。
-
图像压缩
- 实现:将图像矩阵分解为特征向量和特征值,保留大特征值对应的分量,减少存储空间。
- 示例:使用奇异值分解(SVD,基于特征分解)压缩JPEG图像。
-
支持向量机(SVM)
- 核技巧:核矩阵的特征值分析帮助选择最优核函数,提升分类边界划分效果。
-
PageRank算法
- 原理:将网页链接关系建模为矩阵,通过最大特征值对应的特征向量确定网页排名。
四、特征值分析的意义
-
稳定性判断
- 若矩阵所有特征值实部为负,系统趋于稳定(如微分方程模型)。
-
数据表征
- 大特征值对应的特征向量反映数据主要变化方向。
五、扩展思考
-
奇异值分解(SVD)
- 非方阵的广义特征分解,应用于推荐系统、自然语言处理。
-
深度学习
- Hessian矩阵特征值分析网络收敛性,优化训练过程。
PCA中的特征值分析详解
一、协方差矩阵与特征值的关系
协方差矩阵的作用
协方差矩阵(Covariance Matrix)描述数据各维度之间的相关性:
- 若矩阵元素 ( C_{ij} ) 较大,表示维度 ( i ) 和 ( j ) 高度相关。
- 对角线元素 ( C_{ii} ) 表示维度 ( i ) 的方差。
特征分解的目标
对协方差矩阵进行特征分解:
[
C = V \Lambda V^T
]
- ( \Lambda ) 是特征值对角矩阵(( \lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_n ))。
- ( V ) 是特征向量矩阵,每列对应一个主成分方向。
二、特征值的物理意义
特征值的大小
特征值 ( \lambda_i ) 表示数据在对应特征向量方向上的方差。例如,若 ( \lambda_1 = 5 ),( \lambda_2 = 1 ),说明第一个主成分方向的方差是第二个方向的5倍。
方差贡献率
主成分的方差贡献率:
[
\text{贡献率} = \frac{\lambda_i}{\sum_{j=1}^{n} \lambda_j}
]
累计贡献率决定保留的主成分数量(如保留前k个,使累计贡献率≥85%)。
三、PCA中特征值分析的具体步骤
标准化数据
数据去中心化(均值归零),公式:
[
X_{\text{std}} = X - \text{mean}(X)
]
计算协方差矩阵
cov_matrix = np.cov(X_std, rowvar=False)
特征分解
eigenvalues, eigenvectors = np.linalg.eig(cov_matrix)
选择主成分
按特征值从大到小排序,选择前k个特征向量。例如,若 ( \lambda = [5, 1] ),选择第一个特征向量作为主方向。
投影数据
[
X_{\text{pca}} = X_{\text{std}} \cdot V_k
]
其中 ( V_k ) 是前k个特征向量组成的矩阵。
四、实例演示:二维数据降维
原始数据
data = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9], [1.9, 2.2], [3.1, 3.0]])
协方差矩阵:
[
C = \begin{bmatrix} 0.554 & 0.533 \ 0.533 & 0.647 \end{bmatrix}
]
特征值:
[
\lambda_1 = 1.148, \quad \lambda_2 = 0.053
]
特征向量:
[
v_1 = \begin{bmatrix} 0.707 \ 0.707 \end{bmatrix} \quad (\text{方向45°}), \quad v_2 = \begin{bmatrix} -0.707 \ 0.707 \end{bmatrix}
]
选择主成分
方差贡献率:( \lambda_1 ) 占 95.6%(( 1.148 / (1.148 + 0.053) )),保留第一主成分。
降维结果
数据投影到 ( v_1 ) 方向后的一维结果:
transformed_data = [-1.47, 0.97, -1.29, -0.72, 1.75]
五、关键问题解答
为什么用协方差矩阵?
协方差矩阵对称且半正定,保证特征值为实数且非负,特征向量正交,使得主成分互不相关。
特征值分解 vs 奇异值分解(SVD)
SVD直接对数据中心化后的矩阵分解:
[
X_{\text{std}} = U \Sigma V^T
]
协方差矩阵的特征值 ( \lambda_i = \sigma_i^2 / (n - 1) )(( \sigma_i ) 是X的奇异值)。
如何选择k值?
- 肘部法则:观察特征值下降的拐点。
- 累计贡献率:如保留前k个主成分使累计方差≥85%。
六、应用场景扩展
- 高维数据可视化(如基因表达数据降维到3D)
- 去噪:舍弃小特征值对应的成分(通常是噪声)。
- 特征工程:生成互不相关的新特征,提升模型效率。
七、总结
- 特征值决定了主成分的重要性(方差大小)。
- 特征向量指示了数据最大变化的方向。
- PCA通过保留高方差成分,在损失最少信息的前提下实现降维。
如何用Python实现PCA中的特征值分析?
以下是两种实现PCA特征值分析的方法:手动基于NumPy实现和调用scikit-learn库。通过代码逐步解析核心步骤,并给出完整示例。
方法一:手动实现(基于NumPy)
完整代码示例
import numpy as np
import matplotlib.pyplot as plt# 1. 生成数据(二维示例)
data = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9], [1.9, 2.2], [3.1, 3.0]])# 2. 数据标准化(去中心化)
mean = np.mean(data, axis=0)
std_data = data - mean# 3. 计算协方差矩阵
cov_matrix = np.cov(std_data.T) # 注意转置,确保每列代表一个维度# 4. 特征值分解
eigenvalues, eigenvectors = np.linalg.eig(cov_matrix)# 5. 对特征值和特征向量排序(按特征值从大到小)
sorted_indices = np.argsort(eigenvalues)[::-1]
eigenvalues = eigenvalues[sorted_indices]
eigenvectors = eigenvectors[:, sorted_indices]# 6. 选择主成分(保留前k个)
k = 1 # 降维到1维
top_eigenvectors = eigenvectors[:, :k]# 7. 投影数据到新空间
transformed_data = np.dot(std_data, top_eigenvectors)# 输出结果
print("协方差矩阵:\n", cov_matrix)
print("特征值:", eigenvalues)
print("特征向量矩阵:\n", eigenvectors)
print("降维结果:\n", transformed_data)# 可视化
plt.scatter(std_data[:,0], std_data[:,1], label="原始数据")
plt.quiver(0, 0, eigenvectors[0,0], eigenvectors[1,0], angles='xy', scale_units='xy', scale=1, color='r', label="主成分方向")
plt.axis('equal')
plt.legend()
plt.show()
输出解释
- 协方差矩阵:
[[0.554 0.533][0.533 0.647]]
- 特征值:[1.148, 0.053](第一个主成分方差更大)
- 降维结果:
[[-1.47 ][ 0.97 ][-1.29 ][-0.72 ][ 1.75 ]]
方法二:调用scikit-learn库
完整代码示例
from sklearn.decomposition import PCA
import numpy as np# 1. 数据标准化(scikit-learn的PCA会自动去中心化)
data = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9], [1.9, 2.2], [3.1, 3.0]])# 2. 创建PCA对象并拟合数据
pca = PCA(n_components=1) # 指定保留1个主成分
transformed_data = pca.fit_transform(data)# 3. 查看结果
print("主成分方向(特征向量):", pca.components_)
print("方差贡献率:", pca.explained_variance_ratio_)
print("降维结果:\n", transformed_data)
输出解释
- 主成分方向:[[0.707, 0.707]](与手动计算结果一致)
- 方差贡献率:[0.956](即95.6%的方差由第一主成分解释)
- 降维结果:与手动计算结果一致。
关键步骤详解
数据标准化
必须去中心化(减去均值),否则协方差矩阵计算错误。如果各维度量纲差异大,还需标准化(除以标准差)。
协方差矩阵计算
公式:( C = (X_{\text{std}}^T @ X_{\text{std}}) / (n_{\text{samples}} - 1) )
使用 np.cov(X_std.T)
直接计算更高效。
特征值分解
协方差矩阵的特征向量指示数据最大方差方向。特征值越大,对应方向的数据方差越大。
选择主成分
根据特征值大小排序,保留前k个特征向量。通过 explained_variance_ratio_
计算保留信息的比例。
两种方法对比
方法 | 优点 | 缺点 |
---|---|---|
手动实现(NumPy) | 深入理解PCA数学原理 | 代码复杂,需处理排序和投影 |
scikit-learn | 代码简洁,支持大数据集和稀疏矩阵 | 隐藏底层细节 |
注意事项
- 特征向量方向:特征向量的符号可能随机(如 [0.707, 0.707] 或 [-0.707, -0.707]),不影响主成分方向。
- 高维数据:手动实现适用于教学,实际项目建议使用scikit-learn,因其优化了计算效率。
- 非数值型数据:PCA适用于连续数值型数据,类别型数据需先编码(如One-Hot)。
应用场景示例
鸢尾花数据集降维
from sklearn.datasets import load_iris
import matplotlib.pyplot as pltiris = load_iris()
X = iris.data # 原始数据(4维)
y = iris.targetpca = PCA(n_components=2)
X_pca = pca.fit_transform(X)# 可视化
plt.scatter(X_pca[:,0], X_pca[:,1], c=y)
plt.xlabel("PC1 ({}%)".format(round(pca.explained_variance_ratio_[0] * 100, 2)))
plt.ylabel("PC2 ({}%)".format(round(pca.explained_variance_ratio_[1] * 100, 2)))
plt.show()
总结
- 手动实现:适合学习PCA的数学原理(协方差矩阵、特征值分解)。
- scikit-learn:实际项目首选,代码简洁且高效。
- 核心思想:通过特征值分析找到数据方差最大的方向,实现低维投影。
关于图片解析问题
由于网络原因,图片解析失败。可能的原因包括:
- 链接问题:图片链接可能已失效或不正确。
- 网络问题:当前网络无法访问图片服务器。
建议:
- 检查图片链接的合法性,确保链接正确。
- 稍后重试,网络问题可能已解决。
如果不需要图片解析,本文的其他内容已完整提供。
相关文章:
特征值与特征向量:从理论到应用的全面解析
特征值与特征向量:从理论到应用的全面解析 一、特征值与特征向量核心概念 定义 对于方阵 ( A ),若存在标量 ( \lambda ) 和非零向量 ( v ),使得: [ A v \lambda v ] 则 ( \lambda ) 为特征值,( v ) 为对应的特征向…...
【Python】数组的条件逻辑统计运算元素排序
【Python】数组的条件逻辑&统计运算&元素排序: 一.条件逻辑二.统计运算三.数组元素排序检索数组元素是否满足条件查找数组的唯一元素判断元素是否在其他数组中 一.条件逻辑 import numpy as np arr_x np.array([1, 5, 7]) arr_y np.array([2, 6, 8]) arr_…...
数据流和重定向
1、数据流 不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两 条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去 标准输入(standard input,简称stdinÿ…...
Jetpack Compose 自定义组件完全指南
Jetpack Compose 自定义组件完全指南 Compose 的声明式 UI 范式为创建自定义组件提供了前所未有的灵活性。本指南将带你从基础到高级全面掌握 Compose 自定义组件的开发技巧。 一、自定义组件基础 1.1 基本结构 一个最简单的自定义组件: Composable fun Greeti…...
ETF 场内基金是什么?佣金最低又是多少呢?
嘿,朋友们,大家好啊,我是StockMasterX,今天咱们就坐下来慢慢聊聊这个话题,ETF 场内基金到底是个啥东西,它的佣金最低能到多少,真的是个值得深挖的问题。 说起ETF,我还记得刚入行那会…...
【C++篇】类与对象(中篇) 解密C++类的核心:六大默认成员函数详解与避坑指南
文章目录 前言一、类的六个默认成员函数二、构造函数1. 概念2. 特性(牢记) 三、析构函数1. 概念2. 特性(牢记) 四、拷贝构造函数1. 概念2. 特性(牢记) 五、赋值运算符重载1. 运算符重载2. 赋值运算符重载前…...
001 vue
https://cn.vuejs.org/ 文章目录 v-bindv-modelv-on修饰符条件渲染/控制:v-if v-show列表渲染 M:即Model,模型,包括数据和一些基本操作 V:即View,视图,页面渲染结果 VM:即View-Mode…...
web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS?
web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS? 1. ExpressionWebEditorFrame 控件的内核及解析机制 在 Visual Studio 中用于 Web Forms 可视化开发的 ExpressionWebEditorFrame 控件主要基于 Internet…...
$R^n$超平面约束下的向量列
原向量: x → \overset{\rightarrow}{x} x→ 与 x → \overset{\rightarrow}{x} x→法向相同的法向量(与 x → \overset{\rightarrow}{x} x→同向) ( x → ⋅ n → ∣ n → ∣ 2 ) n → (\frac{\overset{\rightarrow}x\cdot\overset{\righta…...
英伟达新一代GPU架构(50系列显卡)PyTorch兼容性解决方案
随着NVIDIA不断推出基于新架构的GPU产品,机器学习框架需要相应地更新以支持这些硬件。本文记录了在RTX 5070 Ti上运行PyTorch时遇到的CUDA兼容性问题,并详细分析了问题根源及其解决方案,以期为遇到类似情况的开发者提供参考。 在Anaconda虚…...
16.2Linux自带的LED灯驱动实验(详细编写)_csdn
这个实验不用自己编写代码。 1、在linux源代码中,打开 stm32mp15-pinctrl.dtsi 文件并进行修改: make uImage LOADADDR0XC2000040 -j8 //编译内核然后: 2、修改设备节点,打开 stm32mp157d-atk.dts: 其中࿱…...
Java 大视界 -- Java 大数据在智慧交通停车场智能管理与车位预测中的应用实践(174)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
HashMap 底层原理详解
1. 核心数据结构 JDK 1.7 及之前:数组 链表 JDK 1.8 及之后:数组 链表/红黑树(链表长度 ≥8 时转红黑树,≤6 时退化为链表) // JDK 1.8 的 Node 定义(链表节点) static class Node<K,V&g…...
重生之我是去噪高手——diffusion model
diffusion model是如何运作的? 想象一下,你有一张清晰的图片。扩散模型的核心思想分为两个过程: 前向过程(Forward Process / Diffusion Process):逐步加噪反向过程(Reverse Process / Denois…...
FfreeRTOS有阻塞作用的API
在 FreeRTOS 中,阻塞 API 是指那些会导致调用任务进入阻塞状态(Blocked State)的函数,即任务会暂时让出 CPU,直到某个条件满足(如超时、信号量可用、队列数据到达等)。以下是常见的阻塞 API 分类及示例: 1. 任务延迟(延时) vTaskDelay() 使任务阻塞指定的时间(以系统…...
app逆向专题二:app逆向流程
app逆向专题二:app逆向流程 一、app逆向说明二、拿到APP应用的apk三、使用工具进行查壳四、有壳需要先进行脱壳,拿到dex文件进行反编译五、使用Jadx-Gui或其他工具进行反编译,分析源码;六、根据app的抓包情况拿到加密的关键词参数…...
VMware 安装 Ubuntu 全流程实战指南:从零搭建到深度优化
在软件开发、系统测试以及技术学习等诸多场景中,使用虚拟机安装操作系统是一种灵活且高效的方式。Ubuntu 作为一款优秀的开源操作系统,在 VMware 虚拟机上的安装与优化备受关注。接下来,将为大家带来 VMware 安装 Ubuntu 的全流程实战指南&am…...
论文阅读笔记——RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION
RDT-1B 论文 模型表达与泛化能力:由于双臂操作中动作空间维度是单臂空间的两倍,传统方法难以建模其多模态分布。 数据:双臂数据少且不同机器人的物理结构和动作空间差异(如关节数、运动范围)导致数据分布不一致&#x…...
如何一天背300到500个单词
买一本有结构分析或词源注释的目标词汇书。 买一盒口香糖。 准备一摞空白的A4纸。 找一间用于冥想的黑屋子(眼晴闭上就可以了)。 将要背诵的单词进行分组: 5个一小组10个一中组50个一大组100个一个基本包或单元。给自己一个约定,比如背完一中组或一大组单词,嚼一粒口香糖…...
vs环境中编译osg以及osgQt
1、下载 OpenSceneGraph 获取源代码 您可以通过以下方式获取 OSG 源代码: 官网下载:https://github.com/openscenegraph/OpenSceneGraph/releases 使用 git 克隆: git clone https://github.com/openscenegraph/OpenSceneGraph.git 2、下载必要的第三方依赖库 依赖库 ht…...
C++ - 头文件基础(常用标准库头文件、自定义头文件、头文件引入方式、防止头文件重复包含机制)
一、头文件 在 C 中,头文件(.h)用于函数声明、类定义、宏定义等等 在 Visual Studio 中,头文件通常放在头文件目录中,头文件实现通常放在源文件目录中 二、常用标准库头文件 1、输入输出 <iostream> 标准输入…...
12款字重国外法国风格复古报纸日历设计衬线英文字体安装包 Claire Font Family
Claire 是一个带有坚固衬线的字体系列。该系列中的几种粗细字体非常适合设置大量连续文本;另一方面,极轻和极重的字体在显示应用中配合使用效果很好。Clair 中的字体具有垂直轴,其设计让人联想到当代报纸字体以及 Century 模型中的十九世纪晚…...
Java 类型转换和泛型原理(JVM 层面)
一、类型转换 概念解释: 编译类型:在编译时确定,保存在虚拟机栈的栈帧中的局部变量表中; 运行类型:在运行时确定,由保存在局部变量表中变量指向的堆中对象实例的类型决定(存储在对象头中&…...
ffmpeg基础知识入门
文章目录 📦 1. **容器(Container)**✅ 定义:✅ 举例:✅ 功能: 📶 2. **媒体流(Stream)**✅ 定义:✅ 举例:✅ 流和容器关系: …...
k8s 1.23升级1.24
0、简介 这里只用3台服务器来做一个简单的集群,当前版本是1.23.17目标升级到1.24.17 地址主机名192.168.160.40kuber-master-1192.168.160.41kuber-master-2192.168.160.42kuber-node-1 我这里设置的master2可调度pod,将master2的污点去掉 kubectl de…...
MIPI与DVP接口摄像头:深度解析与应用指南
1、MIPI 1.1 MIPI简介 MIPI是什么?MIPI:mobile industry processor interface移动行业处理器接口。它是一个由Intel、Motorola、Nokia、NXP、Samsung、ST(意法半导体)和TI(德州仪器)等公司发起的开放标准…...
liunx输入法
1安装fcitx5 sudo apt update sudo apt install fcitx fcitx-pinyin 2配置为默认输入法 设置-》系统-》区域和语言 点击系统弹出语言和支持选择键盘输入法系统 3设置设置 fcitx-configtool 如果没显示需要重启电脑 4配置fcitx 把搜狗输入法放到第一位(点击下面…...
马吕斯定律(Malus‘s Law)
马吕斯定律(Maluss Law)详解 马吕斯定律是偏振光学中的基本定律,由法国物理学家**tienne-Louis Malus**于1809年发现,描述了**线偏振光**通过检偏器后的光强变化规律。 2. 实验验证 3. 数学推导 4. 关键应用 5. 特殊情况讨论 …...
大厂算法面试 7 天冲刺:第6天-树与图深度剖析——高频算法面试题 Java 实战
🧠 第6天:树与图深度剖析——高频算法面试题 & Java 实战 📚 一、核心知识概览 Overview 1. 树(Tree) 树是一种非线性数据结构,常见于面试中的二叉树(Binary Tree)、二叉搜索树…...
C语言编译和链接错题
一、错题重现 1.用在switch语句中的关键字不包含哪个?( ) A.continue B.break C.default D.case 2.下面代码的结果是:( ) A.3 B.4 C.随机值 D.5 3.下面那个不是转义字符? A.\n B.\060 C.\q D.\b 二、错因分析及思考 1.题目看…...
吴恩达深度学习复盘(7)一个简单训练示例
简介 本篇简单讲解简单的神经网络训练。通过回顾逻辑回归模型训练,了解神经网络训练的相关内容。比如训练步骤、损失函数、优化算法以及深度学习库的使用,了解训练过程中的相关概念。 例子 手写数字识别(判断是 0 还是 1)。这是…...
道路坑洼目标检测数据集-665-labelme
文章目录 1.介绍3.标签介绍4.标注工具5.数据集下载 1.介绍 目标:从道路图像中检测坑洼; 应用:检测道路地形和坑洼可实现平稳行驶,小型数据集常常用于学习和学术研究; 详细信息: 665 张图、1740个在坑洼处标…...
提升移动端用户体验:解决输入框被软键盘遮挡的有效方法
解决移动端输入框被软键盘覆盖的问题 在开发移动端网页时,如果页面包含输入框,则可能会遇到输入框被弹出的软键盘遮挡的问题。为了解决这个问题,我们需要理解两种常见的情况以及相应的解决策略。 浏览器未主动聚焦到输入框 现代浏览器和移…...
函数极限常见计算方法集锦
本文非常直接,如标题所见就是一个常见的计算方式极限方法的集锦。 所以内在逻辑性确实不强,主要通过例题的形式阐述。 添项减项 当题目出现了交错的形式便可以考虑添项减项。 一般而言我们会加一项交错项,减一项交错项。 例如出现 A B …...
Tomcat的部署
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和 并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和 JSP容器 官网:Apache Tomcat - Welco…...
Ubuntu(CentOS、Rockylinux等)快速进入深度学习pytorch环境
这里写自定义目录标题 安装进入系统(如Ubuntu22.04)安装anacondapip、conda换源pip换源conda换源 安装nvidia安装pytorch环境针对于wsl的优化 安装进入系统(如Ubuntu22.04) docker 、 wsl 、 双系统 、服务器系统 推荐 Ubuntu 20…...
AI 如何帮助我们提升自己,不被替代
在当今快速发展的时代,人工智能(AI)正逐渐渗透到生活的方方面面。许多人担心 AI 会取代人类的工作,然而,AI 更多的是作为一种强大的赋能工具,帮助我们提升自身能力,让我们在工作中更具竞争力。以…...
ROS2 多机时间同步(Chrony配置简明指南)
适用场景: 主机运行 ROS2 Humble(发布 /scan 等),板子运行 ROS2 Foxy(发布 /tf 等),两边通过 ROS_DOMAIN_ID 跨平台通讯。需要保证系统时间对齐,避免 TF 插值失败、建图抖动等问题。…...
C 语言排序算法:从基础到进阶的全面解析一、引言
一、引言 在 C 语言编程领域,排序算法是一项基础且核心的技能。无论是处理海量数据,还是优化程序性能,选择合适的排序算法都至关重要。本文将深入剖析 C 语言中常见的几种排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、…...
蓝桥云客--团队赛
2.团队赛【算法赛】 - 蓝桥云课 问题描述 蓝桥杯最近推出了一项团队赛模式,要求三人组队参赛,并规定其中一人必须担任队长。队长的资格很简单:其程序设计能力值必须严格大于其他两名队友程序设计能力值的总和。 小蓝、小桥和小杯正在考虑报名…...
VBA第三十八期 VBA自贡分把表格图表生成PPT
上一节讲到把数据区域自动生成PPT,这一实例是把图表自动生成PPT。 Sub CopyA11ChartsToPresenta() Dim PP As PowerPoint. Application Dim PPPres As PowerPoint. Presentation Dim PPSlide As PowerPoint. SlideDim i As Integer Shee…...
Linux字符驱动设备开发入门之框架搭建
声明 本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记,(内容参照正点原子I.MX6U嵌入式linux驱动开发指南,可在正点原子官方获取正点原子Linux开发板 — 正点原子资料下载中心 1.0.0 文档),旨在如实记录我在学校学…...
Nextjs15 实战 - React Notes之SidebarNoteList优化和Suspense的使用
current branch 对应如下文档 redis ioredis 本专栏内容均可在Github:notes_02 找到 完整项目使用技术栈: Nextjs15 MySQL Redis Auth Prisma i18n strapi Docker vercel 一、本节目标 实现笔记列表展开回收和 Suspense 的实践 二、修改根…...
第三十章:Python-NetworkX库:创建、操作与研究复杂网络
一、NetworkX库简介 NetworkX是一个强大的Python库,用于创建、操作和研究复杂网络(图)的结构、动态和功能。它支持多种类型的图,包括无向图、有向图、加权图和多重图,并提供了丰富的图论算法和可视化工具。资源绑定附…...
cpp自学 day19(多态)
一、基本概念 同一操作作用于不同的对象,产生不同的执行结果 👉 就像「按F1键」:在Word弹出帮助文档,在PS弹出画笔设置,同一个按键触发不同功能 (1)多态类型 类型实现方式绑定时机静态多态…...
Unity:销毁(Destroy)
Destroy的基本概念 Destroy是Unity提供的一个方法,用于立即或延迟销毁游戏对象(GameObject)或其组件(Component)。它会从场景中移除对象,并释放相关资源(比如内存)。 语法 销毁Ga…...
【C++初阶】模板进阶
目录 模板参数 模板的特化 函数特化 类模板特化 全特化 偏特化 模板分离编译 分离编译 模板的分离编译 为什么模板不支持声明和定义分离呢? 解决方法 模板总结 优点 缺点 模板参数 模板参数分为类型形参和非类型参数 类型形参:出现在模板…...
BN 层的作用, 为什么有这个作用?
BN 层(Batch Normalization)——这是深度神经网络中非常重要的一环,它大大改善了网络的训练速度、稳定性和收敛效果。 🧠 一句话理解 BN 层的作用: Batch Normalization(批归一化)通过标准化每一…...
CNN 里面能自然起到防止过拟合的办法
在 CNN(卷积神经网络)中,其实有 一些结构和机制 天然就具有防止过拟合(overfitting)的作用,不完全依赖额外的正则化手段。 🧠 一、CNN 天然防过拟合的几个原因: 1️⃣ 局部连接&…...
存储基石:深度解读Linux磁盘管理机制与文件系统实战
Linux系列 文章目录 Linux系列前言一、磁盘1.1 初识磁盘1.2 磁盘的物理结构1.3 磁盘的存储结构1.4 磁盘的逻辑结构 二、文件系统2.1 系统对磁盘的管理2.2 文件在磁盘中的操作 前言 Linux 文件系统是操作系统中用于管理和组织存储设备(如硬盘、SSD、USB 等ÿ…...