详细学习 pandas 和 xlrd:从零开始
详细学习 pandas
和 xlrd
:从零开始
前言
在数据处理和分析中,Excel 文件是最常见的数据格式之一。Python 提供了强大的库 pandas
,可以轻松地处理 Excel 文件中的数据。同时,我们还可以使用 xlrd
来读取 Excel 文件,尤其是较旧格式的 .xls
文件。
本篇博客将从零开始,带你学习如何使用 pandas
和 xlrd
来读取、处理、修改和保存 Excel 文件的数据。我们将详细讲解每一步,并附带代码示例和输出结果。
一、环境准备和安装
在开始学习之前,我们需要确保 Python 环境中已经安装了 pandas
和 xlrd
。你可以通过以下步骤安装这些库。
1.1 安装 pandas
和 xlrd
打开命令行(Windows)或终端(macOS 和 Linux),输入以下命令来安装 pandas
和 xlrd
:
pip install pandas xlrd
1.2 验证安装
安装完成后,你可以通过以下代码验证安装是否成功:
import pandas as pd
import xlrdprint(pd.__version__) # 打印 pandas 的版本
print(xlrd.__version__) # 打印 xlrd 的版本
如果没有报错,并且成功打印出版本号,说明安装成功。
二、pandas
和 xlrd
的基础概念
在开始写代码之前,我们先了解一些 pandas
和 xlrd
的基础概念。
2.1 什么是 pandas
?
pandas
是一个用于数据分析和处理的强大 Python 库。它的核心数据结构是 DataFrame 和 Series。
- DataFrame:一个二维表格,类似于电子表格或数据库中的表,具有行和列。
- Series:一个一维数组,类似于表格中的一列数据。
2.2 什么是 xlrd
?
xlrd
是一个专门用于读取 Excel 文件的库,尤其是 .xls
格式的文件。pandas
依赖 xlrd
来读取这些文件的数据。
三、使用 pandas
读取 Excel 文件
3.1 读取 Excel 文件的基础方法
我们首先学习如何使用 pandas
读取一个 Excel 文件。假设我们有一个名为 example.xls
的 Excel 文件,它包含以下数据:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
代码示例:读取 Excel 文件
import pandas as pd# 使用 pandas 读取 Excel 文件
df = pd.read_excel('example.xls', engine='xlrd')# 显示前几行数据
print(df.head())
解释
pd.read_excel
:这是pandas
提供的读取 Excel 文件的函数。我们传入文件名example.xls
和engine='xlrd'
参数,xlrd
用于解析较旧格式的.xls
文件。df.head()
:head()
方法用于显示 DataFrame 的前 5 行数据,帮助我们快速查看数据内容。
输出示例
当你运行这段代码时,你会看到以下输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
四、深入理解 DataFrame
和 Series
4.1 什么是 DataFrame
?
DataFrame 是 pandas
中的核心数据结构之一,它是一个二维的表格,类似于 Excel 表格。每个 DataFrame 都有行索引和列标签。
示例:创建一个简单的 DataFrame
import pandas as pd# 定义一个字典,表示表格中的数据
data = {'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35],'City': ['New York', 'Los Angeles', 'Chicago']
}# 将字典转换为 DataFrame
df = pd.DataFrame(data)# 显示 DataFrame
print(df)
解释
- 字典
data
:我们创建了一个字典,其中每个键(如'Name'
)代表一列数据,每个键对应的值是一个列表,表示这一列的所有数据。 pd.DataFrame(data)
:pandas
提供的DataFrame
构造函数,用于将字典转换为 DataFrame。
输出示例
运行代码后,你将看到如下输出:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
4.2 什么是 Series
?
Series 是 pandas
中的一维数据结构,类似于 Excel 中的一列。每个 Series 都有一个索引和一组数据。
示例:从 DataFrame 中提取 Series
# 从 DataFrame 中提取 'Name' 列,作为一个 Series
names = df['Name']# 显示 Series
print(names)
输出示例
运行代码后,你将看到如下输出:
0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object
解释
df['Name']
:我们使用列标签'Name'
来提取DataFrame
中的某一列,返回一个Series
。Name: Name, dtype: object
:输出结果中显示了Series
的名称和数据类型(这里是字符串object
)。
五、处理 DataFrame
数据
5.1 增加新列
我们可以向 DataFrame
中添加一列新数据,比如性别。
代码示例:增加一列数据
# 增加一列数据,表示这些人的性别
df['Gender'] = ['Female', 'Male', 'Male']# 显示更新后的 DataFrame
print(df)
输出示例
运行代码后,你将看到如下输出:
Name Age City Gender
0 Alice 25 New York Female
1 Bob 30 Los Angeles Male
2 Charlie 35 Chicago Male
5.2 删除列
如果你想删除 DataFrame
中的一列数据,可以使用 drop
方法。
代码示例:删除一列数据
# 删除 'City' 列
df = df.drop(columns=['City'])# 显示更新后的 DataFrame
print(df)
输出示例
运行代码后,你将看到如下输出:
Name Age Gender
0 Alice 25 Female
1 Bob 30 Male
2 Charlie 35 Male
六、保存数据到 Excel 文件
处理完数据后,你可能需要将结果保存到一个新的 Excel 文件中。
代码示例:写入 Excel 文件
# 将 DataFrame 保存到新的 Excel 文件中
df.to_excel('output.xlsx', index=False)print("数据已保存到 output.xlsx")
解释
df.to_excel
:pandas
提供的to_excel
方法用于将 DataFrame 保存到一个 Excel 文件中。index=False
:这个参数表示不要将行索引保存到文件中。
输出示例
运行代码后,终端中会显示:
数据已保存到 output.xlsx
并且,你的项目目录中会生成一个名为 output.xlsx
的 Excel 文件,内容如下:
Name Age Gender
0 Alice 25 Female
1 Bob 30 Male
2 Charlie 35 Male
七、读取和合并多个 Excel 文件
7.1 场景概述
在实际项目中,你可能需要从多个 Excel 文件中读取数据,并将它们合并到一个 DataFrame 中。这在处理多个来源的数据时尤其有用。
7.2 代码示例:读取并合并多个 Excel 文件
假设你有多个 Excel 文件,它们有相同的结构,现在我们需要将这些文件合并到一个 DataFrame 中。
import pandas as pd
import glob# 获取所有 .xls 文件路径
file_list = glob.glob('data/*.xls')# 读取所有文件并合并为一个 DataFrame
df_list = [pd.read_excel(file, engine='xlrd') for file in file_list]
combined_df = pd.concat(df_list, ignore_index=True)# 显示合并后的 DataFrame
print(combined_df.head())
详细解释
- glob.glob(‘data/*.xls’):使用
glob
模块查找data
目录下的所有.xls
文件,返回一个文件路径的列表。 - pd.read_excel(file, engine=‘xlrd’):使用
pandas
的read_excel
函数读取每个 Excel 文件,这里指定xlrd
引擎来处理.xls
文件。 - pd.concat(df_list, ignore_index=True):将所有读取的 DataFrame 合并为一个大的 DataFrame,
ignore_index=True
表示忽略原来的行索引,重新生成连续的索引。
输出示例
假设你有三个 Excel 文件,每个文件的内容类似于:
File 1:Name Age City
0 Alice 25 New YorkFile 2:Name Age City
0 Bob 30 Los AngelesFile 3:Name Age City
0 Charlie 35 Chicago
合并后的 DataFrame 输出如下:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
7.3 实际应用场景
在项目中,你可以使用这个方法来合并多个 Excel 文件的数据,例如汇总多个部门的数据,或者处理分月份、分季度的财务报表。
八、数据清洗与缺失值处理
8.1 场景概述
在数据分析中,数据通常不完美,可能包含缺失值或异常值。你需要掌握如何清洗这些数据,以确保数据质量。
8.2 处理缺失数据
缺失值 是指在数据集中某些字段没有数据,这是常见的问题。我们可以选择删除包含缺失值的行,或者用其他值来填补缺失值。
代码示例:填充和删除缺失值
# 示例数据,假设从 Excel 读取的 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', None],'Age': [25, None, 35, 30],'City': ['New York', 'Los Angeles', None, 'Chicago']
}
df = pd.DataFrame(data)# 查看原始数据
print("原始数据:\n", df)# 填充缺失值
df_filled = df.fillna({'Name': '未知', 'Age': df['Age'].mean(), 'City': '未知'})
print("\n填充缺失值后的数据:\n", df_filled)# 删除包含缺失值的行
df_dropped = df.dropna()
print("\n删除缺失值后的数据:\n", df_dropped)
详细解释
- 填充缺失值:
- df.fillna({‘Name’: ‘未知’, ‘Age’: df[‘Age’].mean(), ‘City’: ‘未知’}):使用字典为不同列指定填充值。
Name
列的缺失值用'未知'
填充,Age
列的缺失值用平均值填充,City
列的缺失值用'未知'
填充。
- df.fillna({‘Name’: ‘未知’, ‘Age’: df[‘Age’].mean(), ‘City’: ‘未知’}):使用字典为不同列指定填充值。
- 删除包含缺失值的行:
- df.dropna():删除包含任何缺失值的行,返回一个新的 DataFrame。
输出示例
原始数据:
Name Age City
0 Alice 25.0 New York
1 Bob NaN Los Angeles
2 Charlie 35.0 None
3 None 30.0 Chicago
填充缺失值后的数据:
Name Age City
0 Alice 25.0 New York
1 Bob 30.0 Los Angeles
2 Charlie 35.0 未知
3 未知 30.0 Chicago
删除缺失值后的数据:
Name Age City
0 Alice 25.0 New York
9.3 实际应用场景
在项目中,数据清洗是必不可少的一步。你可以使用这些方法来处理数据集中的缺失值,确保数据完整性和一致性。
四、数据筛选与条件过滤
4.1 场景概述
有时你需要从大数据集中筛选出符合特定条件的数据,比如筛选出所有年龄大于 30 岁的人。
4.2 代码示例:筛选数据
# 示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 35, 28],'City': ['New York', 'Los Angeles', 'Chicago', 'San Francisco']
}
df = pd.DataFrame(data)# 筛选年龄大于 30 岁的数据
filtered_df = df[df['Age'] > 30]print("年龄大于 30 岁的数据:\n", filtered_df)
详细解释
- df[df[‘Age’] > 30]:这是
pandas
中常见的条件筛选方法。它会返回一个新的 DataFrame,其中只包含满足条件(Age > 30
)的行。
输出示例
Name Age City
2 Charlie 35 Chicago
4.3 实际应用场景
在项目中,你可以使用这种条件筛选方法来对数据进行初步分析,或者提取出特定子集的数据用于进一步处理。
五、高效的数据操作与分析
5.1 数据分组与聚合
数据分组和聚合是数据分析中非常常见的操作,它可以帮助你从大数据集中提取总结性信息。
代码示例:按城市分组并计算平均年龄
# 示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],'Age': [25, 30, 35, 28, 40],'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Chicago']
}
df = pd.DataFrame(data)# 按城市分组并计算平均年龄
grouped_df = df.groupby('City')['Age'].mean()print("按城市分组后的平均年龄:\n", grouped_df)
详细解释
- df.groupby(‘City’)[‘Age’].mean():按
City
列分组,然后计算每个组中Age
列的平均值。groupby
是pandas
中的一个强大函数,常用于分组统计。
输出示例
City
Chicago 37.5
Los Angeles 30.0
New York 26.5
Name: Age, dtype: float64
5.2 数据透视表(Pivot Table)
数据透视表是一种将数据重新排列为易于分析的格式的工具,在数据汇总和分析中非常有用。
代码示例:创建数据透视表
# 示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],'Age': [25, 30, 35, 28, 40],'City': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Chicago'],'Gender': ['Female', 'Male', 'Male', 'Male', 'Female']
}
df = pd.DataFrame(data)# 创建数据透视表,按城市和性别汇总平均年龄
pivot_table = pd.pivot_table(df, values='Age', index='City', columns='Gender', aggfunc='mean')print("数据透视表:\n", pivot_table)
详细解释
- pd.pivot_table(df, values=‘Age’, index=‘City’, columns=‘Gender’, aggfunc=‘mean’):创建一个数据透视表,按城市和性别分组,计算每组的平均年龄。
输出示例
Gender Female Male
City
Chicago 40.0 35.0
Los Angeles NaN 30.0
New York 25.0 28.0
5.3 实际应用场景
在你的项目中,分组和数据透视表可以帮助你快速地对数据进行汇总和分析。例如,你可以按部门和性别统计员工的平均年龄,或者按产品和地区计算销售额的汇总。
相关文章:
详细学习 pandas 和 xlrd:从零开始
详细学习 pandas 和 xlrd:从零开始 前言 在数据处理和分析中,Excel 文件是最常见的数据格式之一。Python 提供了强大的库 pandas,可以轻松地处理 Excel 文件中的数据。同时,我们还可以使用 xlrd 来读取 Excel 文件,尤…...
BFS比DFS更好理解「翻转二叉树」
一周没发博客,算法好难!一直在复习前面的,哈希表、链表、二叉树已经够我喝一壶了,不过我一定要啃下来,哪怕慢一点,也不能盲目的追求速度,勤于复习才能将知识变成自己的,复习比学习重…...
c++介绍运算符重载九
这段代码中我们可以看到同样是运算符,它的作用是不同的aa<<3;是c内置的移位运算符。 cout<<"hello world"中<<它的作用是插入运算符。将字符串传递给cout对象,从而将字符输出到终端上。这种功能是如何实现的?其…...
重生之我在学Vue--第9天 Vue 3 项目整合
重生之我在学Vue–第9天 Vue 3 项目整合 文章目录 重生之我在学Vue--第9天 Vue 3 项目整合前言一、架构升级:从散件到整机1.1 项目结构重构1.2 核心模块通信图 二、功能整合:CRUD全链路实现2.1 任务管理状态中枢2.2 路由守卫实现数据预取2.3 UI与业务逻辑…...
小程序酒店:如何实现智能预订与在线支付?
在移动互联网快速发展的今天,酒店行业面临着前所未有的机遇与挑战。用户需求日益多样化,市场竞争愈发激烈,传统酒店预订方式已经难以满足现代消费者的需求。而小程序作为一种轻量化、便捷化的移动应用形式,正在成为酒店行业数字化转型的重要工具。通过小程序开发,酒店可以…...
网络信息安全专业(710207)网络安全攻防实训室建设方案
一、引言 随着信息技术的飞速发展,网络空间安全已成为国家安全的重要组成部分,对网络信息安全专业人才的需求日益增长。为满足网络信息安全专业(专业代码710207)的教学需求,提升学生在网络安全攻防领域的实践能力&…...
npm、pnpm、cnpm、yarn、npx之间的区别
区别 特性npmyarnpnpmcnpmnpx核心定位Node.js 默认包管理增强稳定性与性能高效存储与严格隔离国内镜像加速工具临时执行包命令依赖存储方式扁平化 node_modules扁平化 lock 文件全局硬链接 符号链接同 npm不适用安装速度较慢较快(并行下载)最快&#…...
数学:从宇宙密码到人工智能的核心语言
——解析数学本质、历史演进与未来革命的3000年全景图 一、数学本质论:宇宙的元语言 1.1 数学实在论的拓扑诠释 根据丘成桐的卡拉比-丘流形理论,物理定律可表述为: M C Y ↪ C P n 满足 c 1 ( M ) 0 \mathcal{M}_{CY} \hookrightarrow \…...
Java中的加盐加密:提升密码存储安全性的关键实践
引言 在现代应用中,用户密码的安全性至关重要。单纯的哈希算法(如MD5、SHA-1)虽然可以隐藏原始密码,但面对彩虹表攻击和暴力破解时仍存在风险。加盐加密通过在哈希过程中引入随机数据(称为“盐”)…...
开启AI开发新时代——全解析Dify开源LLM应用开发平台
开启AI开发新时代——全解析Dify开源LLM应用开发平台 在人工智能迅速发展的今天,如何快速将创意转化为高效可用的应用成为开发者亟待解决的问题。Dify 作为一款开源的 LLM 应用开发平台,以其直观的界面和强大的功能组合(包括 agentic AI 工作…...
数学建模:MATLAB强化学习
一、强化学习简述 强化学习是一种通过与环境交互,学习状态到行为的映射关系,以获得最大积累期望回报的方法。包含环境,动作和奖励三部分,本质是智能体通过与环境的交互,使得其作出的动作所得到的决策得到的总的奖励达…...
ELK traceId实现跨服务日志追踪
ELK怎么实现跨服务日志追踪,Trace-Id 具体实现方案及代码_kibana关联其他服务器的日志-CSDN博客 ELKMDC追踪日志 ---- SpringCloud实现传递_elk的mdc-CSDN博客 SpringBoot之HandlerInterceptor拦截器的使用 ——(一)-CSDN博客 在使用ELK&a…...
【开源项目-爬虫】Firecrawl
看到其他项目引用了这个项目 Firecrawl 用免费额度试了一下,这个项目和之前的 https://r.jina.ai/ 很像(类似的还有 https://www.scrapingbee.com/?),将爬取到的网页转换为 markdown 格式,这样大语言模型用…...
波特率、比特率、传信率、传码率......
去年搞过一段时间的无线通信,当时我脑子里真的是一团乱麻,本身咱也不是学通信的,咱是学机械出身的,后面又搞电,反正对于通信这一块就不是很懂,后面也慢慢搞出来了一点小东西,但是对于一些细节还…...
用户模块——redis工具类
1. Redis工具类与基础配置 1.1 什么是Redis,为什么使用它? Redis(Remote Dictionary Server)是一个开源的高性能键值对存储数据库,通常用于缓存数据、存储会话信息等场景。它的主要优点是速度快,支持多种数…...
Synology 部署的 WordPress 無法升級至最新版本時,可以透過以下改良版指南進行排查和解決。
當 Synology 部署的 WordPress 無法升級至最新版本時,可以透過以下改良版指南進行排查和解決。我對內容進行了補充和重新組織,希望能幫助你更高效地處理這類問題: 權限相關問題處理 檢查文件和目錄權限: 確保 WordPress 安裝目錄…...
012-Benchmark
Benchmark 以下是一篇关于Google Benchmark库的全面介绍及使用指南,包含完整C代码示例和核心功能覆盖: Google Benchmark:C 性能基准测试指南 一、库简介 Google Benchmark 是一个专为 C 设计的微基准测试库,用于精确测量代码片…...
百某田网任务脚本
自动化操作百田游戏的任务脚本,特别是用于完成每日任务和积分兑换的功能。 主要功能 任务管理: 脚本通过定时任务查询并执行每天的任务,自动完成任务并兑换积分。 每个任务通过调用do_list()和do_task()函数来查询和完成。 多账号支持: 支持多个账号的登录和管理,账号信息…...
使用纯CSS 实现 侧边栏 拖拽效果
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、效果实现原理二、代码演示三.简单解释下样式四 完整的DEMO总结 前言 有不少需求是要拖动改变侧边栏宽高的,以下就是在不适用js ,只使用css 的情…...
c语言笔记 函数入门
c语言的函数就是用来实现某种功能的,如果说我们的程序代码都写在main函数中,这样会显得很难读懂,而且代码太长过于冗余,显得没有质量。所以我们可以把一些功能用分函数的方法实现功能独立分开,实现c程序的工整还有方便…...
运维新手入门——线缆的使用(Beginner‘s Guide to Operations and Maintenance - Cable Usage)
运维新手入门——线缆的使用 近期不断的有朋友问到线缆的传输距离,我们每天都在与线缆打交道,清楚了解线缆的使用才能在项目中得心应手,我们之前有提到过。 本期我们一起再来总结下常用的线缆传输距离。 01) 网线:超…...
JS—闭包:3分钟从入门到放弃
个人博客:haichenyi.com。感谢关注 一. 目录 一–目录二–基础定义三–闭包的运行机制四–闭包实战应用场景五–内存泄漏预防指南六–最佳实践总结 二. 基础定义 闭包:能够访问外部函数作用域的函数,以及其词法环境的组合。举个老生常谈栗…...
python pandas模块
python pandas模块 终于也到介绍pandas的时候了,python中用于处理data的一个lib 从wiki中找到的关于pandas的介绍,如下, Original author(s) Wes McKinney Developer(s) Community Initial release 11 January 2008; 17 years ago [citatio…...
系统部署【信创名录】及其查询地址
一、信创类型 (一)服务器: 1.华为云 2.腾讯云 3.阿里云 (二)中央处理器(CPU): 1.海思,鲲鹏920服务器 (三)中间件 1.人大金仓 ࿰…...
docker-compose部署MongoDB分片集群
前言 MongoDB 使用 keyFile 进行 节点间身份验证,我们需要先创建一个 keyFile 并确保所有副本集的节点使用相同的 keyFile。 openssl rand -base64 756 > mongo-keyfile chmod 400 mongo-keyfiledocker-compose部署分片集群 无密码方式 # docker-compose-mongodb.yml s…...
博奥龙Nanoantibody系列IP专用抗体
货号名称BDAA0260 HRP-Nanoantibody anti Mouse for IP BDAA0261 AbBox Fluor 680-Nanoantibody anti Mouse for IP BDAA0262 AbBox Fluor 800-Nanoantibody anti Mouse for IP ——无轻/重链干扰,更高亲和力和特异性 01Nanoantibody系列抗体 是利用噬菌体展示纳…...
CTFshow 【WEB入门】信息搜集 【VIP限免】 web1-web17
CTFshow 【 WEB入门】、【VIP限免】 web1 ----源码泄露 首先第一步,看源代码 web2----前台JS绕过 简单点击查看不了源代码,可以强制查看 比如 Ctrl Shift ICtrl U或者在url前加一个view-source: view-source:http://79999ca1-7403-46da-b25b-7ba9…...
css 知识点整理
1.css 层叠样式表 中的 inherit、initial、unset 关键字适用属性类型行为逻辑典型场景inherit所有属性强制继承父级值统一子元素样式initial所有属性重置为规范初始值清除自定义或继承样式unset所有属性自动判断继承或重置简化全局样式重置或覆盖 2. sass 常用语法 2.1、变量…...
02.Kubernetes 集群部署
Kubernetes 集群部署 Kubernetes 相关端口 1. Kubernetes 集群组件运行模式 独立组件模式 除 Add-ons 以外,各关键组件以二进制方式部署于节点上,并运行于守护进程;各 Add-ons 以 Pod 形式运行 静态 Pod 模式 控制平面各组件以静态 Pod …...
支持向量机(SVM)原理与应用
背景 支持向量机(Support Vector Machine, SVM)是一种经典的监督学习算法,广泛应用于分类和回归问题。SVM以其强大的数学基础和优异的性能在机器学习领域占据了重要地位。本文将详细介绍SVM的原理、核函数的作用以及如何在Python中使用SVM解决…...
【文献阅读】SPRec:用自我博弈打破大语言模型推荐的“同质化”困境
📜研究背景 在如今的信息洪流中,推荐系统已经成为了我们生活中的“贴心小助手”,无论是看电影、听音乐还是购物,推荐系统都在努力为我们提供个性化的内容。但这些看似贴心的推荐背后,其实隐藏着一个严重的问题——同质…...
【WRF模拟】如何查看 WPS 的输入静态地理数据(二进制格式)?
查看 WPS 的输入静态地理数据方法总结 方法 1:使用 gdal_translate 将二进制数据转换为 GeoTIFFgdal_translate 工具概述使用 gdal_translate 将二进制数据转换为 GeoTIFF方法 2:使用 ncdump 查看 geo_em.dXX.nc方法 3:使用 Python xarray + matplotlib 可视化 geo_em.dXX.n…...
介绍如何使用RDDM(残差噪声双扩散模型)进行知识蒸馏
下面为你详细介绍如何使用RDDM(残差噪声双扩散模型)进行知识蒸馏,从而实现学生RDDM模型的一步去噪。这里假定你已经有了RDDM模型,并且使用PyTorch深度学习框架。 整体思路 数据准备:加载训练数据并进行必要的预处理。…...
【lf中的git实战】
1)开发分支 develop 2)各种功能分支 author/feature_func 3)release分支 4)合并author/feature_func到develop author/feature_func 到 develop时: cd develop git merge --squash author/feature_func 5)develop合并到author/feature_func时: cd author/feature_func g…...
Java实现Consul/Nacos根据GPU型号、显存余量执行负载均衡
Java实现Consul/Nacos根据GPU型号、显存余量执行负载均衡 步骤一:服务端获取GPU元数据 1. 添加依赖 在pom.xml中引入Apache Commons Exec用于执行命令: <dependency><groupId>org.apache.commons</groupId><artifactId>comm…...
编译支持 RKmpp 和 RGA 的 ffmpeg 源码
一、前言 RK3588 支持VPU硬件解码,需要rkmpp进行调用;支持2D图像加速,需要 RGA 进行调用。 这两个库均能通过 ffmpeg-rockchip 进行间接调用,编译时需要开启对应的功能。 二、依赖安装 编译ffmpeg前需要编译 rkmpp 和 RGA…...
布隆过滤器(Bloom Filter)
布隆过滤器是一种概率型数据结构,用于快速判断一个元素是否可能在集合中存在。它的核心特点是: 节省空间:相比哈希表,布隆过滤器占用的存储空间非常小。高效查询:查询时间复杂度为 (O(k)),其中 (k) 是哈希…...
2025-03-10 学习记录--C/C++-C语言 易错点 大总结
C语言 易错点 大总结 一、strlen(strs) 使用错误 ⭐️ 若strs 是一个指针数组(const char* strs[]),则不可用strlen(strs) 计算 strs 的长度,因为 strlen 是用于计算 字符串 的长度,而不是数组的长度。 解决方法 &…...
康谋应用 | 基于多传感器融合的海洋数据采集系统
在海洋监测领域,基于无人艇能够实现高效、实时、自动化的海洋数据采集,从而为海洋环境保护、资源开发等提供有力支持。其中,无人艇的控制算法训练往往需要大量高质量的数据支持。然而,海洋数据采集也面临数据噪声和误差、数据融合…...
SpringMVC (二)请求处理
目录 章节简介 一 请求处理(初级) eg:请求头 二 请求处理(进阶) eg:请求体 三 获取请求头 四 获取Cookie 五 级联封装 六 使用RequestBoby封装JSON对象 七 文件的上传 八 获取整个请求 HttpEntity 九 原生请求 Spring…...
数据结构——单链表list
前言:大家好😍,本文主要介绍数据结构——单链表 目录 一、单链表 二、使用步骤 1.结构体定义 2.初始化 3.插入 3.1 头插 3.2 尾插 3.3 按位置插 四.删除 4.1头删 4.2 尾删 4.3 按位置删 4.4按值删 五 统计有效值个数 六 销毁…...
课程《Deep Learning Specialization》
在coursera上,Deep Learning Specialization 课程内容如下图所示: Week2 assignment, Logistic Regression....
低版本 Linux 系统通过二进制方式升级部署高版本 Docker
一、背景: 在一些 Linux 系统中,由于系统自带的软件源版本较低,或者因网络、权限等限制无法直接通过源文件来升级到最新版本的 Docker。这种情况下,采用二进制方式升级部署高版本 Docker 就成为一种有效的解决方案。下面将详…...
线索二叉树构造及遍历算法
线索二叉树构造以及遍历算法 线索二叉树(中序遍历版)构造线索二叉树构造双向线索链表遍历中序线索二叉树 线索二叉树(中序遍历版) 中序遍历找到对应结点的前驱(土方法) #mermaid-svg-eunGO5d2GhjLxCn5 {fo…...
3. 自定义类型****
目录 1. 内存对齐(必考) 如何计算? 为什么要内存对齐? 2. 联合 2.1 联合的定义 2.2 联合的特点 1. 内存对齐(必考) 结构体内存对齐是一个特别热门的考点。 如何计算? 第一个成员在与结构…...
Redis Sentinel (哨兵模式)深度解析:构建高可用分布式缓存系统的核心机制
一、传统主从复制的痛点 在分布式系统架构中,Redis 作为高性能缓存和数据存储解决方案,其可用性直接关系到整个系统的稳定性。传统的主从复制架构虽然实现了数据冗余,但在面临节点故障时仍存在明显缺陷: 手动故障转移…...
deepseek本地部署
deepseek本地部署 哈喽,兄弟们!大家可以想象一下,如果有一个超级聪明的人机大脑,能帮你解答任何问题,从复杂的数学难题到编程代码,再到那些让你头疼的写作任务,它都能轻松搞定。这不是科幻电影里的场景,而是DeepSeek带来的现实奇迹!DeepSeek,这个名字听起来就充满了…...
责任链模式的C++实现示例
核心思想 责任链模式是一种行为设计模式,允许多个对象都有机会处理请求,从而避免请求的发送者与接收者之间的耦合。请求沿着处理链传递,直到某个对象处理它为止。 解决的问题 解耦请求发送者与处理者:请求的发送者无需知道具…...
【蓝桥杯python研究生组备赛】003 贪心
题目1 股票买卖 给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易&…...
Banana Pi 与瑞萨电子携手共同推动开源创新:BPI-AI2N
2025年3月11日, Banana Pi 开源硬件平台很高兴宣布,与全球知名半导体解决方案供应商瑞萨电子(Renesas Electronics)正式达成技术合作关系。此次合作标志着双方将在开源技术、嵌入式系统和物联网等领域展开深度合作,为全…...