2024华为杯研赛C题原创python代码+结果表(1-2问)|全部可运行|精美可视化

news2024/9/21 21:43:22

2024华为杯研赛C题原创python代码+结果表(1-2问)|全部可运行|精美可视化

以下均为python代码,推荐用anaconda中的notebook当作编译环境

第一问:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

data = pd.read_excel('附件一(训练集).xlsx', sheet_name='材料1')
data
import matplotlib.font_manager as fm

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决坐标轴负数显示问题

def plot_magnetic_flux_density(sample_id):
    """根据样本ID绘制磁通密度随时间变化的曲线"""
    sample = data.iloc[sample_id, 4:].values  
    time = np.linspace(0, 1, len(sample))     
    plt.figure(figsize=(8, 4))
    plt.plot(time, sample)
    plt.title(f"磁通密度随时间的变化 - 样本 {sample_id}")
    plt.xlabel("时间 (周期内归一化)")
    plt.ylabel("磁通密度 (T)")
    plt.grid(True)
    plt.show()


plot_magnetic_flux_density(0)  
plot_magnetic_flux_density(50)  
plot_magnetic_flux_density(100) 

from scipy.stats import kurtosis, skew
from scipy.fft import fft

def extract_features(sample):
    """从磁通密度中提取特征"""
    features = {}

     # 确保样本为数值类型
    sample = sample.astype(float)  # 将样本数据转换为浮点数
    sample = sample[~np.isnan(sample)]  # 如果有 NaN 值,则移除
    
    # 时间域特征
    features['mean'] = np.mean(sample)
    features['std'] = np.std(sample)
    features['max'] = np.max(sample)
    features['min'] = np.min(sample)
    features['kurtosis'] = kurtosis(sample)  # 峰度
    features['skew'] = skew(sample)          # 偏度
    
    # 频域特征 (取前几个主要频率成分的绝对值)
    fft_values = np.abs(fft(sample))
    features['fft_1'] = fft_values[1]  # 第一频率成分
    features['fft_2'] = fft_values[2]  # 第二频率成分
    features['fft_3'] = fft_values[3]  # 第三频率成分
    
    return features

# 对所有样本提取特征
features = []
for i in range(len(data)):
    sample = data.iloc[i, 4:].values  # 提取磁通密度数据
    feature_dict = extract_features(sample)
    feature_dict['label'] = data.iloc[i, 3]  # 标签是励磁波形
    features.append(feature_dict)

# 转换为DataFrame
features_df = pd.DataFrame(features)

# 查看提取的特征
features_df.head()

features_df.replace({'label': {'正弦波': 1, '三角波': 2,'梯形波': 3}}, inplace=True)
features_df.head()

这里省略一步关键代码,继续:

# 对所有样本提取特征
test_data_features = []
for i in range(len(test_data)):
    sample = test_data.iloc[i, 4:].values  # 提取磁通密度数据
    test_data_feature_dict = extract_features(sample)
    test_data_features.append(test_data_feature_dict)

# 转换为DataFrame
test_data_features_df = pd.DataFrame(test_data_features)

# 查看提取的特征
test_data_features_df.head()

y_pred = gbdt.predict(test_data_features_df)
y_pred

然后:

unique, counts = np.unique(y_pred, return_counts=True)
waveform_counts = dict(zip(unique, counts))

print("三种波形的数量统计:")
print(f"正弦波 (1) 数量: {waveform_counts.get(1, 0)}")
print(f"三角波 (2) 数量: {waveform_counts.get(2, 0)}")
print(f"梯形波 (3) 数量: {waveform_counts.get(3, 0)}")

以上仅为部分。其中更详细的思路、各题目思路、代码、讲解视频、成品论文及其他相关内容,可以看下面的群名片哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pg入门18—如何使用pg gis

1. 下载postgre gis镜像 2. 运行镜像 docker run -p 15432:5432 -d -e POSTGRES_PASSWORDAb123456! postgis/postgis:12-3.4-alpine 3. 使用gis # 进入容器,登录pgdocker exec -it bash# 登录数据库psql -U postgres# 创建数据库CREATE DATABASE mygeotest;# 使用…

初步认识C++模版

前言 在C语言中,我们知道函数的形参需要指定类型,但是在C中,我们可以模版实现各种类型参数的通用函数。 1. 泛型编程 我们通过函数重载实现多种类型的同一作用的函数。如交换函数: void Swap(int& left, int& right) …

力扣 167.两数之和||—输入为有序数组

文章目录 题目介绍解法 题目介绍 解法 利用相向双指针&#xff0c;初始时l在最用左边&#xff0c;r在最右边 1.numbers[l] numbers[r] < target 则 l 2.numbers[l] numbers[r] < target 则 r 3.numbers[l] numbers[r] target 说明找到了答案 class Solution {publi…

linux 操作系统下dhcrelay命令介绍和案例应用

linux 操作系统下dhcrelay命令介绍和案例应用 dhcrelay是一个用于DHCP&#xff08;动态主机配置协议&#xff09;中继的命令&#xff0c;主要功能是在没有本地DHCP服务器的子网中转发DHCP请求。这使得不同子网的DHCP客户端能够与位于其他子网中的DHCP服务器进行通信。 dhcrela…

基于YOLO算法的网球运动实时分析-击球速度测量-击球次数(附源码)

这个项目通过分析视频中的网球运动员来测量他们的速度、击球速度以及击球次数。该项目使用YOLO&#xff08;You Only Look Once&#xff09;算法来检测球员和网球&#xff0c;并利用卷积神经网络&#xff08;CNNs&#xff09;来提取球场的关键点。此实战项目非常适合提升您的机…

面向对象开发流程例题

答案;C 知识点 面向对象分析 认定对象 组织对象 对象间的相互作用 基于对象的操作 面向对象设计 识别类及对象 定义属性 定义服务 识别关系 识别包 面向对象程序设计 程序设计范型 选择一种OOPL 面向对象测试 算法层 类层 模板层 系统层

发布Java项目到Maven中央仓库

1.背景 本教程为2024年9月最新版 我有一个Java项目&#xff0c;想发布到Maven中央仓库&#xff0c;任何人都可以在pom文件中引用我的代码 引用格式如下&#xff08;以rocketmq为例&#xff09;&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId…

鸿蒙开发之ArkUI 界面篇 十七 购物综合案例

layoutWeight:子元素与兄弟元素主轴方向按照权重进行分配,参数是联合类型&#xff0c;数字或者是字符串&#xff0c;在指定的空间占多少份额&#xff0c;数字越大&#xff0c;表示在空间中占用的份额越多&#xff0c;如果父容器的子组件没有别的指定&#xff0c;剩下的空间全部…

LeetCode[中等] 438. 找到字符串中所有字母异位词

给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 思路&#xff1a;滑动窗口 s包含p的异位词 ——> 则…

如何导入一个Vue并成功运行

注意1&#xff1a;要确保自己已经成功创建了一个Vue项目&#xff0c;创建项目教程在如何创建Vue项目 注意2&#xff1a;以下操作均在VS Code&#xff0c;教程在VS Code安装教程 一、Vue项目导入VS Code 1.点击文件&#xff0c;然后点击将文件添加到工作区 2. 选择自己的vue项…

Java 每日一刊(第13期):this super static

“优秀的代码不仅仅是给机器看的&#xff0c;更是给人看的。” 前言 这里是分享 Java 相关内容的专刊&#xff0c;每日一更。 本期将为大家带来以下内容&#xff1a; this 关键字super 关键字static 关键字 this 关键字 this 关键字是 Java 中最常见的关键字之一&#xf…

数据中台系统产品原型RP原型Axure高保真交互原型 源文件分享

在数字化时代&#xff0c;数据已经成为企业最宝贵的资产之一。为了更好地管理和利用这些数据&#xff0c;这边为大家整理了一套数据中台Axure高保真原型。这套原型致力于为企业提供全方位的数据服务&#xff0c;助力企业实现数据驱动的创新发展。 下载及预览地址&#xff1a;h…

Spring自定义参数解析器

在这篇文章中&#xff0c;我们认识了参数解析器和消息转换器&#xff0c;今天我们来自定义一个参数解析器。 自定义参数解析器 实现HandlerMethodArgumentResolver的类&#xff0c;并注册到Spring容器。 Component&#xff0f;&#xff0f;注册到Spring public class UserAr…

目标拟合椭圆

对于目标区域&#xff0c;the ellipse fit is computing by matching second-order moments.

吉首大学--23级题目讲解

7-1 单链表基本操作 在 C/C 中&#xff0c;.&#xff08;点&#xff09;和 ->&#xff08;箭头&#xff09;运算符用于访问结构体或类的成员&#xff0c;但它们的使用场景不同。 1. . 运算符 . 运算符用于访问结构体或类的成员&#xff0c;通过对象或结构体变量直接访问。…

双虚拟机架构:在Linux上分别部署Nginx/PHP和MariaDB

在第一台虚拟机上安装 Nginx 和 PHP 更新软件包索引: sudo apt update安装 Nginx: sudo apt install nginx -y启动 Nginx 服务: sudo systemctl start nginx安装 PHP 和 Nginx 的 PHP 支持: sudo apt install php-fpm php-common -y配置 Nginx 以使用 PHP: 查看 PHP…

docker搭建个人网盘,支持多种格式,还能画图,一键部署

1&#xff09;效果 2&#xff09;步骤 2.1&#xff09;docker安装 docker脚本 bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrorsmain/DockerInstallation.sh)docker-compose脚本 curl -L "https://github.com/docker/compose/releases/late…

PostgreSQL(PG)(二十二)

&#x1f33b;&#x1f33b; 目录 &#x1f33b;&#x1f33b; 一、PostgreSQL 简介1.1、PG 的历史1.2、PG的社区1.2.1 纯社区1.2.2 完善的组织结构1.2.3 开源许可独特性 1.3 、PostgreSQL与MySQL的比较 二、PostgresQL的下载安装2.1、Windows上安装 PostgreSQL2.2、远程 连接 …

新能源汽车数据大全(产销数据\充电桩\专利等)

新能源汽车数据大全&#xff08;产销数据\充电桩\专利等&#xff09; 来源&#xff1a;全国各省市统计年鉴、统计公报、国家能源署、中国汽车行业协会&#xff0c;各类汽车统计年鉴、中国电动汽车充电基础设施促进联盟等 1、汽车分品牌产销(95家车企&#xff0c;768个车型&am…

项目第六弹:虚拟机管理模块、路由匹配模块

项目第六弹&#xff1a;虚拟机管理模块、路由匹配模块 一、虚拟机管理模块的设计1.什么是虚拟机&#xff1f;2.借助MySQL来理解一下3.如何整合&#xff1f;【埋下伏笔】 二、RabbitMQ为何要有虚拟机1.从业务角度来讲2.步步探索1.优点2.结合业务适用场景和需求3.发掘真正的原因4…