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

综合使用pandas、numpy、matplotlib、seaborn库做数据分析、挖掘、可视化项目

目录

1.结构化数据挖掘

1.1依赖库导入和数据读取

1.2各品牌机型及售价统计

1.3视频录制规格与价格关联性分析

2.结构化数据预处理

2.1筛选特征

2.2特征标签归一化及编码


1.结构化数据挖掘
1.1依赖库导入和数据读取

导入必要的依赖库,读取 csv 格式数据集转化为 Dataframe 格式,命名为 data,使用 pandas 必要接口,并打印数据集的前五个样本。

# 数据导入观察
import pandas as pd
data = pd.read_csv('cleaned_all_phones.csv')
data.head()

说明:

import pandas as pd

导入Pandas库,并将其简称为pd。Pandas是一个强大的数据分析和处理库,广泛用于数据清洗、转换、分析和可视化。

data = pd.read_csv('cleaned_all_phones.csv')

使用Pandas的read_csv()函数加载一个名为cleaned_all_phones.csv的CSV文件。这个文件可能包含手机相关的数据,例如品牌、价格、性能指标等。read_csv()函数会将CSV文件读取为一个DataFrame对象,这是Pandas中用于存储表格数据的主要数据结构。

data.head()

调用head()方法显示DataFrame的前五行数据。这是数据探索的常用操作,用于快速查看数据的结构和内容。

1.2各品牌机型及售价统计

统计各品牌发布的机型数量,并绘制机型数量关于品牌的柱形图,统计个品牌发布的机型的价格均值,并绘制机型价格均值关于品牌的柱形图。

# 可视化数据分布
import matplotlib.pyplot as plt
import seaborn as snsfig, ax = plt.subplots(1,2,figsize=(20,6))brand_counts = data['brand'].value_counts()sns.barplot(x=brand_counts.index, y=brand_counts.values, ax=ax[0],color='red')
ax[0].set_xlabel('Brand')
ax[0].set_ylabel('Count')
ax[0].set_title('Brand Distribution')
ax[0].tick_params(axis='x',rotation=90)brand_price_mean = data.groupby('brand')['price(USD)'].mean()sns.barplot(x=brand_price_mean.index, y=brand_price_mean.values, ax=ax[1],color='red')
ax[1].set_xlabel('Brand')
ax[1].set_ylabel('Averge Price')
ax[1].set_title('Brand X Price Distribution')
ax[1].tick_params(axis='x',rotation=90)plt.tight_layout()
plt.show()

说明:

seaborn:基于matplotlib的高级绘图库,提供了更简洁的API和更美观的默认样式,特别适合用于统计图表的绘制。

fig,ax = plt.subplots(1,2,figsize=(20,6))

使用plt.subplots()创建一个包含1行2列的图形布局,总尺寸为20×6英寸。

fig表示整个图形对象,ax是一个包含两个子图的数组,分别用于绘制不同的图表。

brand_counts = data['brand'].values_counts()
brand_counts_mean = data.groupby('brand')['price(USD)'].mean()

brand_counts:使用value_counts()方法统计brand列中每个品牌出现的次数。

brand_price_mean:使用groupby()方法按品牌分组,并计算每个品牌的平均价格。

sns.barplot(x=brand_counts.index,y=brand_counts.values,ax=ax[0],color='red')
ax[0].set_xlabel('Brand')
ax[0].set_ylabel('Count')
ax[0].set_title('Brand Distribution')
ax[0].tick_params(axis='x',rotation=90)

使用seabornbarplot()方法绘制柱状图

x=brand_counts.index:品牌名称作为横轴

y=brand_counts.values:品牌出现的次数作为纵轴

ax=ax[0]:指定将图表绘制在第一个子图上

color='red':将柱子的颜色设置为红色

使用ax[0].set_xlabel()ax[0].set_ylabel()ax[0].set_title()设置横轴标签、纵轴标签和标题。

使用ax[0].tick_params(axis='x', rotation=90)将横轴标签旋转90度,避免标签重叠。

sns.barplot(x=brand_price_mean.index,y=brand_price_mean.values,ax[1],color='red')
ax[1].set_xlabel('Brand')
ax[1].set_ylabel('Average Price')
ax[1].set_title('Brand X Price Distribution')
ax[1].tick_params(axis='x',rotation=90)

绘制第二个子图参数同上

库的应用拓展

Matplotlib的更多功能

自定义图表样式:

plt.style.use('ggplot')  # 使用ggplot风格

添加网格线:

ax[0].grid(axis='y', linestyle='--', alpha=0.7)

添加注释:

ax[0].annotate('Highest Count', xy=('Brand A', 100), xytext=(10, 10),
               arrowprops=dict(facecolor='black', shrink=0.05))

Seaborn的更多功能

绘制箱线图:

sns.boxplot(x='brand', y='price(USD)', data=data)

绘制热力图:

sns.heatmap(data.corr(), annot=True, cmap='coolwarm')

绘制散点图矩阵:

sns.pairplot(data, hue='brand')

结合Pandas进行更复杂的数据分析

分组统计:

brand_stats = data.groupby('brand').agg({'price(USD)': ['mean', 'median', 'std']})

条件筛选与可视化:

high_price_brands = data[data['price(USD)'] > 1000]
sns.scatterplot(x='brand', y='price(USD)', data=high_price_brands)

1.3视频录制规格与价格关联性分析

以 10 种不同的视频录制规格作为特征,分别绘制价格有关这 10 种特征的 10 张箱线图,将 10 张箱线图打印在一个同画布上。

# 分析某(某些)特征标签(1:1)关系可以箱线图sns.boxplot()
video_feature = [col for col in data.columns if col.startswith('video')]plt.subplots(4,3,figsize=(30,30))
for idx,feature in enumerate(video_feature,start=1):
    plt.subplot(4,3,idx)    sns.boxplot(x=feature, y='price(USD)', data=data, hue=feature, palette={False:'red',True:'blue'}) #     plt.xlabel('feature')
    plt.ylabel('price(USD)')
    plt.title('price box plot')

说明

video_feature = [col for col in data.columns if col.startswith('vedio_')]

使用列表推导式从data的列名中筛选出以“video”开头的特征列

这些特征可能与视频功能相关,例如video_resolution(视频分辨率)、video_fps(视频帧率)等

for idx,feature in enumerate(vedio_feature,start=1):plt.subplot(4,3,idx)sns.boxplot(x=feature,y='price(USD)',data=data,hue=feature,palette={False:'red',True:'blue'})
    plt.xlabel('feature')
    plt.ylabel('price(USD)')
    plt.title('price box plot')

enumerate(video_feature, start=1):遍历video_feature列表,并为每个特征分配一个索引(从1开始)。

plt.subplot(4, 3, idx):根据索引将每个箱线图绘制在对应的子图位置。

sns.boxplot():使用Seaborn的boxplot()方法绘制箱线图

x=feature:将特征列作为横轴。

y='price(USD)':将价格作为纵轴。

data=data:指定数据源。

hue=feature:根据特征的值对箱线图进行分组(假设特征是布尔类型,如TrueFalse)。

palette={False: 'red', True: 'blue'}为分组设置颜色False为红色,True为蓝色。

plt.xlabel('feature')plt.ylabel('price(USD)')plt.title('price box plot'):设置横轴标签、纵轴标签和标题

补充:

箱线图的作用

为什么可以用箱线图分析特征与标签的关系?

箱线图是一种用于展示一组数据的五数概括(最小值、第一四分位数、中位数、第三四分位数和最大值)的图表。通过箱体和须线直观地展示了数据的分布情况,包括中位数、分布范围、异常值等。

分析特征与标签的关系

在机器学习和数据分析中,箱线图可以用来分析特征与标签之间的关系,尤其是当特征是分类变量(如布尔值、类别标签)时:

分布差异:通过比较不同特征值对应的标签分布,可以直观地看出特征值对标签的影响。例如,某些特征值可能导致标签值的分布更集中或更分散。

异常值检测:箱线图可以清晰地展示异常值,帮助分析特征与异常标签值之间的关系。

适用场景:

特征是分类变量:当特征是布尔值(如True/False)或类别标签时,箱线图可以很好地展示不同类别对应的标签分布差异。例如,video_feature可能是布尔值(如是否支持高清视频录制),箱线图可以直观地展示支持与不支持高清视频的手机价格分布差异。

标签是连续变量:箱线图适用于分析连续标签(如价格)的分布情况。通过箱线图,可以快速判断特征对标签分布的影响。

限制

特征是连续变量时的局限性:如果特征是连续变量,箱线图可能不太适用。因为箱线图主要用于分类变量的分布比较。对于连续特征,需要先将其离散化(如分桶),或者使用其他图表(如散点图、回归线图)来分析与标签的关系。

复杂关系的局限性:箱线图主要用于展示分布差异,但对于复杂的因果关系或非线性关系,可能需要结合其他分析方法(如相关性分析、回归分析)来进一步验证。

精简总结:

箱线图通过展示数据的五数概括和分布情况,可以帮助分析分类特征与连续标签之间的关系。它特别适合用于比较不同特征值对应的标签分布差异和检测异常值。对于连续特征,可能需要先进行离散化处理,或者使用其他图表进行分析。

从箱线图可以看出vedio_特征为True的手机价格分布在大体上是比False的要高的,即vedio特征的有无会影响price

2.结构化数据预处理
2.1筛选特征

使用 pandas 拷贝一份数据集,命名为 df,取 'price (USD)' 为标签 y, 其他为特征集合 X,删除 X 中无关特征,只保留:'inches', 'battery', 'ram (GB)', 'weight (g)', 'storage (GB) 等特征,统计 name 特征中包含 'pro' 或 'max' 的样本,新建布尔特征 'has_pro_or_max'。

# 拷贝一份数据模型训练预处理破坏原数据
df = data.copy()X = df[['inches', 'battery', 'ram(GB)', 'weight(g)', 'storage(GB)']] #, *video_feature]
y = df['price(USD)']X['has_pro_or_max'] = data['phone_name'].map(lambda x:1 if 'Pro' in x or 'Max' in x else 0)
# X['has_pro_or_max'] = df['phone_name'].str.contains('pro|max',case=False,regex=True).astype(int)X  

说明:

X['has_pro_or_max'] = data['phone_name'].map(lambda x:1 if 'Pro' in x or 'Max' in x else 0)

通过map()方法和lambda函数,为每个手机名称检查是否包含“Pro”或“Max”字样

如果包含,则返回1,表示该手机名称中包含“Pro”或“Max”;如果不包含,则返回0

这个新特征has_pro_or_max被添加到特征集X中,用于捕捉品牌型号中可能影响价格的关键词

# X['has_pro_or_max'] = df['phone_name'].str.contains('pro|max', case=False, regex=True).astype(int)

使用str.contains()方法检查phone_name列中是否包含“pro”或“max”(不区分大小写)

case=False:忽略大小写

regex=True:允许使用正则表达式

astype(int):将布尔值(True/False)转换为整数(1/0)

这种方法与map()和lambda函数的效果相同,但更简洁

2.2特征标签归一化及编码

编写数据预处理函数 preprocessing,对标签和特征用 sklearn 中的 StandardScaler 进行归一化。

并且在该函数中,调用接口进行划分 80% 数据为训练集,20% 数据为测试集,函数的返回值为训练集和测试集的特征和标签。

调用该函数进行数据预处理和数据集划分,并打印出训练集和测试集的数组形状。

# 标签特征归一化切分数据集
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import numpy as npdef df_preprocessing(X,y):
    std = StandardScaler()
    X = std.fit_transform(X)
    y = std.fit_transform(y.values.reshape(-1,1))    X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=42)return X_train,X_test,y_train,y_testX_train,X_test,y_train,y_test = df_preprocessing(X,y)#X_train.shape,X_test.shape,y_train.shape,y_test.shapeprint('Number transactions X_train dataset:',X_train.shape)
print('Number transactions y_train dataset:',y_train.shape)
print('Number transactions X_test dataset:',X_test.shape)
print('Number transactions y_test dataset:',y_test.shape)

说明

def df_preprocessing(X, y):std = StandardScaler()X = std.fit_transform(X)y = std.fit_transform(y.values.reshape(-1,1))

StandardScaler 的使用

对特征 X 进行标准化:X = std.fit_transform(X)

对标签 y 进行标准化:y = std.fit_transform(y.values.reshape(-1, 1))

y.values.reshape(-1, 1):将 y 从一维数组转换为二维数组,因为 StandardScaler 需要二维输入

改进建议

标签是否需要标准化?

在许多回归任务中,标签不需要标准化,因为模型的输出可以直接与原始标签进行比较;如果对标签进行标准化,后续需要将预测结果反向转换为原始尺度

如果确实需要标准化标签,建议在预测后进行反标准化:

y_pred = std.inverse_transform(y_pred)

保存标准化器的状态

在实际应用中,标准化器(StandardScaler)的状态(均值和标准差)需要保存,以便在模型部署时对新数据进行相同的标准化处理

可以通过 joblib 或 pickle 保存标准化器:

from joblib import dump
dump(std, 'scaler.joblib')

处理异常值

在标准化之前,建议检查数据中是否存在异常值,因为异常值会对标准化产生较大影响

相关文章:

综合使用pandas、numpy、matplotlib、seaborn库做数据分析、挖掘、可视化项目

目录 1.结构化数据挖掘 1.1依赖库导入和数据读取 1.2各品牌机型及售价统计 1.3视频录制规格与价格关联性分析 2.结构化数据预处理 2.1筛选特征 2.2特征标签归一化及编码 1.结构化数据挖掘 1.1依赖库导入和数据读取 导入必要的依赖库,读取 csv 格式数据集转化为 Data…...

day21-API(算法,lambda,练习)

常见的七种查找算法: ​ 数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉有疑惑,可以先看一下哥们后面录制的数据结构…...

Linux : 进程地址空间

目录 一 前言 二 进程地址空间是什么 1.现象 2.虚拟地址空间 3. 现象解释 4. 写时拷贝 三 为什么要存在进程地址空间 四 进程地址空间是如何实现的 1 操作系统如何管理进程地址空间 一 前言 进程地址空间图: 在学习C语言的内存管理的时候,我…...

wordpress鼠标特效笔记+npm问题解决

在WordPress网站上添加鼠标点击特效和网页背景特效_wordpress鼠标特效-CSDN博客 学习设置文章浏览量的插件超详细图解:如何使用 WordPress搭建一个个人博客?-CSDN博客 ------------------2025.03.06------------------------------- npm 运行时报错“因…...

大模型——使用 Embedding 模型和向量数据库的 Spring AI RAG

大模型——使用 Embedding 模型和向量数据库的 Spring AI RAG 本文主要介绍以下内容: 嵌入式模型简介。使用 DocumentReader 加载数据。在 VectorStore 中存储 Embedding。实现 RAG(Retrieval-Augmented Generation,检索增强生成),又名 Prompt Stuffing。你可以在 GitHub…...

Spring Boot 缓存最佳实践:从基础到生产的完整指南

Spring Boot 缓存最佳实践:从基础到生产的完整指南 引言 在现代分布式系统中,缓存是提升系统性能的银弹。Spring Boot 通过 spring-boot-starter-cache​ 模块提供了开箱即用的缓存抽象,但如何根据业务需求实现灵活、可靠的缓存方案&#xf…...

vue3,Element Plus中隐藏树el-tree滚动条

el-tree&#xff0c;节点过多&#xff0c;默认会出现垂直滚动条&#xff0c;显得不美观 可以使用隐藏组件 el-scrollbar 将 el-tree 包裹&#xff0c;就可以隐藏垂直滚动条 <el-scrollbar> <el-tree> ... </el-tree> </el-scrollbar> /* 滚动条禁用鼠…...

《机器学习数学基础》补充资料:过渡矩阵和坐标变换推导

尽管《机器学习数学基础》这本书&#xff0c;耗费了比较长的时间和精力&#xff0c;怎奈学识有限&#xff0c;错误难免。因此&#xff0c;除了在专门的网页&#xff08; 勘误和修订 &#xff09;中发布勘误和修订内容之外&#xff0c;对于重大错误&#xff0c;我还会以专题的形…...

掌握高效大模型任务流搭建术(二):链式流程如何赋能 AI 处理能力提升

前言&#xff1a; 在上一篇文章中&#xff0c;我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型&#xff08;LLM&#xff09;与提示模板&#xff08;Prompt Template&#xff09;相结合&#xff0c;为模型交互逻辑的封装提供了一种简洁而高效的方式…...

Linux——Docker容器内MySQL密码忘记了如何查看

目录 查看正在运行的MySQL的容器ID 方法一&#xff1a;查看MySQL容器的日志里的密码 方法二&#xff1a;通过环境变量密码登录 方法三&#xff1a;修改密码 查看正在运行的MySQL的容器ID docker ps 方法一&#xff1a;查看MySQL容器的日志里的密码 docker logs [MySQL的容器…...

深入剖析 Kubernetes 弹性伸缩:HPA 与 Metrics Server

引言 在 Kubernetes (K8s) 集群中&#xff0c;如何根据应用的实际负载自动调整 Pod 数量&#xff0c;实现资源的弹性利用&#xff0c;是保障服务稳定性和成本效益的关键。Horizontal Pod Autoscaler (HPA) 和 Metrics Server 正是实现这一目标的核心组件。本文将深入探讨 HPA …...

Qt5 C++ QMap使用总结

文章目录 功能解释代码使用案例代码解释注意事项代码例子参考 功能解释 QList<T> QMap::values() const Returns a list containing all the values in the map, in ascending order of their keys. If a key is associated with multiple values, all of its values wi…...

如何改变怂怂懦弱的气质(2)

你是否曾经因为害怕失败而逃避选择&#xff1f;是否因为不敢拒绝别人而让自己陷入困境&#xff1f;是否因为过于友善而被人轻视&#xff1f;如果你也曾为这些问题困扰&#xff0c;那么今天的博客就是为你准备的。我们将从行动、拒绝、自我认知、实力提升等多个角度&#xff0c;…...

【CVTE】嵌入式软件开发-Linux方向{一面}

文章目录 数组和链表的区别&#xff1f;特点&#xff1f;使用场景&#xff1f;**1. 数组&#xff08;Array&#xff09;****特点&#xff1a;****使用场景&#xff1a;** **2. 链表&#xff08;Linked List&#xff09;****特点&#xff1a;****使用场景&#xff1a;** **3. 数…...

自律linux 第 35 天

之前学习了UDP编程&#xff0c;UDP是可以实现多个用户向一个用户发送的&#xff0c;但是TCP一个服务端在同一时刻只能对应一个客户端&#xff0c;因为TCP的通信是使用管道通信的&#xff0c;如果要使用TCP实现一对多的通信&#xff0c;有如下几种办法&#xff1a;多进程&#x…...

云原生系列之本地k8s环境搭建

前置条件 Windows 11 家庭中文版&#xff0c;版本号 23H2 云原生环境搭建 操作系统启用wsl(windows subsystem for linux) 开启wsl功能&#xff0c;如下图 安装并开启github加速器 FastGithub 2.1 下载地址&#xff1a;点击下载 2.2 解压安装文件fastgithub_win-x64.zip 2…...

Cursor实战:Web版背单词应用开发演示

Cursor实战&#xff1a;Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...

每日一题----------枚举的注意事项和细节

注意事项&#xff1a; 1.当我们使用enum关键字开发一个枚举类时&#xff0c;默认会继承Enum类&#xff0c;而且是一个final类&#xff0c;利用javap反编译可查。 2.public static Season SPRING new Season("春天", "温暖");简化成SPRING("春天&qu…...

【Java学习】异常

一、异常的处理过程 异常类的似复刻变量被throw时&#xff0c;会立即中止当前所在的这层方法&#xff0c;即当层方法里throw异常类似复刻变量之后的语句就不会执行了&#xff0c;如果throw异常语句在当层方法中被try{}包裹&#xff0c;则中止就先发生被包裹在了try{}层&#xf…...

使用STM32CubeMX实现LED灯每秒闪烁一次(STM32G070CBT6单片机)

1.打开STM32CubeMX&#xff0c;点击File->New Project&#xff0c;新建一个新工程。 2.搜索芯片型号&#xff0c;选择正确的芯片封装规格&#xff0c;准备对芯片的引脚进行配置。 进行上面的操作后&#xff0c;跳转到如下的页面。 3.选择要配置的引脚进行配置。此处我的LED是…...

FastGPT 引申:如何基于 LLM 判断知识库的好坏

文章目录 如何基于 LLM 判断知识库的好坏方法概述示例 Prompt声明抽取器 Prompt声明检查器 Prompt 判断机制总结 下面介绍如何基于 LLM 判断知识库的好坏&#xff0c;并展示了如何利用声明抽取器和声明检查器这两个 prompt 构建评价体系。 如何基于 LLM 判断知识库的好坏 在知…...

rabbitmq版本升级并部署高可用

RabbitMQ版本升级 先检查是否已经安装rabbitmq rpm -qa|grep rabbitmq|wc -l //如果结果是0&#xff0c;表示没有安装 rpm -e --nodeps $(rpm -qa|grep rabbitmq) //如安装了&#xff0c;则进行卸载 先检查是否已经安装erlang rpm -qa|grep erlang|wc -l //如果结果…...

了解JVM

目录 一、内存区域划分 1.方法区&#xff08;元数据区&#xff09; 2.堆 3.栈 4.程序计数器 5.本地方法栈 总结&#xff1a; 二、类加载 1.加载 2.验证 3.准备 4.解析 5.初始化 三、双亲委派模型 四、垃圾回收 1.找到垃圾 1&#xff09;引用计数 2&#xff09;…...

Linux - 工具

一、 代码编译&#xff08;g/gcc&#xff09; 1) 预处理 g –E hello.c –o hello.i宏替换 条件编译 头文件展开 去注释 2) 编译 g –S hello.i –o hello.s检查语法将代码转为汇编 3) 汇编 g –c hello.s –o hello.o将汇编转为二进制代码 4) 链接 g hello.o –o …...

ASP.NET Core 6 MVC 文件上传

概述 应用程序中的文件上传是一项功能&#xff0c;用户可以使用该功能将用户本地系统或网络上的文件上传到 Web 应用程序。Web 应用程序将处理该文件&#xff0c;然后根据需要对文件进行一些验证&#xff0c;最后根据要求将该文件存储在系统中配置的用于保存文件的存储中&#…...

大模型LoRA微调训练原理是什么?

环境&#xff1a; LoRA 问题描述&#xff1a; 大模型LoRA微调训练原理是什么&#xff1f; 解决方案&#xff1a; LoRA&#xff08;Low-Rank Adaptation&#xff09;微调是一种高效的参数优化技术&#xff0c;专门用于大型语言模型的微调&#xff0c;旨在减少计算和内存需求…...

Ubuntu系统上部署Node.js项目的完整流程

以下是在Ubuntu系统上部署Node.js项目的完整流程&#xff0c;分为系统初始化、环境配置、项目部署三个部分&#xff1a; 一、系统初始化 & 环境准备 bash # 1. 更新系统软件包 sudo apt update && sudo apt upgrade -y# 2. 安装基础工具 sudo apt install -y buil…...

vue3:七、拦截器实现

一、前言 拦截器可以很好的统一处理请求和响应 ​请求拦截器&#xff1a;可以在请求发送之前对请求进行统一处理&#xff0c;比如添加认证信息&#xff08;如 token&#xff09;、设置请求头、添加公共参数等。​响应拦截器&#xff1a;可以在响应返回之后对响应数据进行统一…...

K8S高可用集群-小白学习之二进制部署(ansible+shell)

一.K8S高可用集群配置概述 序言:本文从一个小白的视角进行K8S的研究和部署,采用二进制的方式是为了更清楚了分解部署流程及了解这个集群是怎么运作的,加上ansible+shell是方便在这个过程中,遇到了问题,我们可以不断的快速重复部署来测试和研究问题的所在点,本文的架构图…...

学生管理信息系统的需求分析与设计

伴随教育的迅猛演进以及学生规模的不断扩增&#xff0c;学生管理信息系统已然成为学校管理的关键利器。此系统能够助力学校管控学生的课程成绩、考勤记载、个人资讯等诸多数据&#xff0c;提升学校的管理效能与服务品质。 一.需求分析 1.1 学生信息管理 学生信息在学校管理体…...

010---基于Verilog HDL的分频器设计

文章目录 摘要一、时序图二、程序设计2.1 rtl2.2 tb 三、仿真分析四、实用性 摘要 文章为学习记录。绘制时序图&#xff0c;编码。通过修改分频值参数&#xff0c;实现一定范围分频值内的任意分频器设计。 一、时序图 二、程序设计 2.1 rtl module divider #(parameter D…...

Pytorch使用手册—雅可比矩阵、海森矩阵、hvp、vhp 等:组合函数变换(专题四十四)

计算雅可比矩阵或海森矩阵在许多非传统深度学习模型中是非常有用的。使用 PyTorch 的常规自动微分 API(Tensor.backward(),torch.autograd.grad)计算这些量是困难的(或者很麻烦)。PyTorch 的受 JAX 启发的函数变换 API 提供了高效计算各种高阶自动微分量的方法。 注意: 本…...

OpenCV计算摄影学(16)调整图像光照效果函数illuminationChange()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 对选定区域内的梯度场应用适当的非线性变换&#xff0c;然后通过泊松求解器重新积分&#xff0c;可以局部修改图像的表观照明。 cv::illuminati…...

WPF框架---MvvmLight介绍

目录 1. MvvmLight 框架准备 2. MvvmLight 中的相关基类 3. MvvmLight 中的数据绑定与通知 a. 核心功能 b. 关键方法与属性 c. 完整示例 d. 高级用法 4. MvvmLight 中的命令对象 a. 命令对象的作用 b. 核心接口&#xff1a;ICommand c. MvvmLight 中的 RelayCommand…...

C语言基础之【指针】(下)

C语言基础之【指针】&#xff08;下&#xff09; 指针和字符串字符指针字符指针做函数参数const修饰的指针变量指针数组做为main函数的形参项目开发常用字符串应用模型while和do-while模型两头堵模型字符串反转模型 字符串处理函数strchr()strrchr()strstr()strtok()strcpy()st…...

Deepseek中的MoE架构的改造:动态可变参数激活的MoE混合专家架构(DVPA-MoE)的考虑

大家好,我是微学AI,今天给大家介绍一下动态可变参数激活MoE架构(Dynamic Variable Parameter-Activated MoE, DVPA-MoE)的架构与实际应用,本架构支持从7B到32B的等多档参数动态激活。该架构通过细粒度难度评估和分层专家路由,实现“小问题用小参数,大问题用大参数”的精…...

【0012】Python函数详解

如果你觉得我的文章写的不错&#xff0c;请关注我哟&#xff0c;请点赞、评论&#xff0c;收藏此文章&#xff0c;谢谢&#xff01; 本文内容体系结构如下&#xff1a; 编写代码往往是为了实现特定的功能&#xff0c;如果需要使用功能多次&#xff0c;也要写同样的代码多次吗…...

Stable Diffusion教程|快速入门SD绘画原理与安装

什么是Stable Diffusion&#xff0c;什么是炼丹师&#xff1f;根据市场研究机构预测&#xff0c;到2025年全球AI绘画市场规模将达到100亿美元&#xff0c;其中Stable Diffusion&#xff08;简称SD&#xff09;作为一种先进的图像生成技术之一&#xff0c;市场份额也在不断增长&…...

鸿蒙应用开发深度解析:API 14核心特性与实战指南

文章目录 一、HarmonyOS API 14架构升级解析1.1 系统架构演进1.2 核心能力对比 二、ArkUI 3.0开发实战2.1 声明式UI完整示例2.2 自定义组件开发 三、分布式能力深度开发3.1 跨设备数据同步流程3.2 分布式数据库操作 四、系统能力扩展开发4.1 后台任务管理4.2 硬件服务调用 五、…...

docker中kibana启动后,通过浏览器访问,出现server is not ready yet

问题&#xff1a;当我在浏览器访问kibana时&#xff0c;浏览器给我报了server is not ready yet. 在网上试了很多方法&#xff0c;都未能解决&#xff0c;下面是我的方法&#xff1a; 查看kibana日志&#xff1a; docker logs -f kibana从控制台打印的日志可以发现&#xff…...

2025年天梯赛第1场选拔赛

目录 A:徐老师的积木山峰 B:徐老师的最长上升子序列 C:徐老师的机器命令 D:徐老师的地下堡 E:徐老师的新鲜羊腿 F:徐老师的黄金矿工 G:徐老师的成绩统计 H:春节糖果 I:幸运函数 J:好坏钥匙 A:徐老师的积木山峰 徐老师有 n 块积木排成一排&#xff0c;从左往右数编号依次为 1∼…...

28-文本左右对齐

给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词&#xff1b;也就是说&#xff0c;尽可能多地往每行中放置单词。必要时可…...

SpringBoot校园管理系统设计与实现

在现代校园管理中&#xff0c;一个高效、灵活的管理系统是不可或缺的。本文将详细介绍基于SpringBoot的校园管理系统的设计与实现&#xff0c;涵盖管理员、用户和院校管理员三大功能模块&#xff0c;以及系统的部署步骤和数据库配置。 管理员功能模块 管理员是系统的核心管理…...

thunder bird 配置邮箱

1.配 outlook https://cn.windows-office.net/?p22940 2.配 qq 邮箱 https://blog.csdn.net/lx_ros/article/details/124831850 3.QQ邮箱的授权码在 账号与安全 4.qq 邮箱 更换 foxmail 邮箱名 https://www.yigujin.cn/blog/p10094.html 结语 感觉网上搜到的都不咋好&…...

机器学习中的线性代数:奇异值分解 SVD

线性代数 奇异值分解&#xff08;SVD&#xff09; 参考资料&#xff1a; 超详细&#xff01;彻底搞懂矩阵奇异值分解&#xff08;SVD&#xff09;本质计算应用&#xff01;_哔哩哔哩_bilibili 非常好的视频&#xff0c;本文内容主要来自于该视频&#xff0c;在此表示感谢&#…...

机器学习深度学习基本概念:logistic regression和softmax

逻辑回归用来处理二分类问题 softmax用来处理多分类问题&#xff1a;比如llm在generate的时候&#xff0c;每个batch里面的一个样本的一个一次generate就是softmax生成一个大小为vocab_size的向量的概率分布&#xff0c;然后再采样 逻辑回归&#xff08;logistic regression&…...

机器学习(六)

一&#xff0c;决策树&#xff1a; 简介&#xff1a; 决策树是一种通过构建类似树状的结构&#xff08;颠倒的树&#xff09;&#xff0c;从根节点开始逐步对数据进行划分&#xff0c;最终在叶子节点做出预测结果的模型。 结构组成&#xff1a; 根节点&#xff1a;初始的数据集…...

在 Maven 中使用 <scope> 元素:全面指南

目录 前言 在 Maven 中&#xff0c; 元素用于定义依赖项的作用范围&#xff0c;即依赖项在项目生命周期中的使用方式。正确使用 可以帮助我们优化项目的构建过程&#xff0c;减少不必要的依赖冲突&#xff0c;并提高构建效率。本文将详细介绍 的使用步骤、常见作用范围、代码…...

Manus邀请码如何申请,有哪些办法

Manus是由Monica团队推出的一款通用型AI智能体产品&#xff0c;旨在通过自主任务规划与执行能力&#xff0c;将用户的想法转化为实际成果。它不仅能够理解复杂指令&#xff0c;还能通过调用虚拟环境中的工具&#xff08;如浏览器、代码编辑器、文件处理器等&#xff09;&#x…...

大型WLAN组网部署(Large scale WLAN network deployment)

大型WLAN组网部署 大型WLAN网络关键技术 技术 作用 VLAN Pool 通过VLAN Pool把接入的用户分配到不同的VLAN&#xff0c;可以减少广播域&#xff0c;减少网络中的广播报文&#xff0c;提升网络性能。 DHCP Option 43 & 52 当AC和AP间是三层组网时&#xff0c;AP通过…...