数学建模竞赛常用代码总结-PythonMatlab
数学建模过程中有许多可复用的基础代码,在此对 python 以及 MATLAB 中常用代码进行简单总结,该总结会进行实时更新。
一、文件读取
python (pandas)
文件后缀名(扩展名)并不是必须的,其作用主要一方面是提示系统是用什么软件打开,另一方面提示文件内容格式。如.txt, .csv, .tsv 文件均为纯文本文件,只是 .csv, .tsv 说明了数据的分割方式分别为, 与 \t 。既然都是文本文件,那就都可用 pandas.read_csv 或 pandas.read_table 等进行读取,这里采用 pandas.read_csv 。
.txt 文件
import pandas as pd
tsvfile = pd.read_csv(‘filename.txt’)
tsvfile = pd.read_csv(‘filename.txt’,skiprows=1)#跳过首行
.csv 文件
import pandas as pd
tsvfile = pd.read_csv(‘filename.csv’)
tsvfile = pd.read_csv(‘filename.csv’,skiprows=1)#跳过表头
.tsv 文件
import pandas as pd
tsvfile = pd.read_csv(‘filename.tsv’, sep=‘\t’)
.json 文件
import pandas as pd
jsonfile = pd.read_json(‘filename.json’, orient = ‘records’)
.csv 文件转.json 文件
import csv
import json
csvfile = open(‘filename.tsv’,r)
jsonfile = open(‘filename.json’,w)
fieldnames = (“key1”,“key2”,“key3”)
reader = csv.DictReader(csvfile,fieldnames)
for row in reader:
json.dump(row,jsonfile)jsonfile.write('\\n')
.xlsx 文件
excel 是二进制文件,它保存有关工作簿中所有工作表的信息,也可对数据进行有关操作。
import pandas as pd
# 读取 Excel 数据,选取 sheet1 工作表
sheet_1 = pd.read_excel(‘demo.xlsx’, sheet_name=‘Sheet1’, na_values=‘n/a’)
# 打印 sheet 表名
print(pd.ExcelFile(‘listings.xlsx’).sheet_names)
# 打印数据头部
print(sheet_1.head())
.xlsx 文件转 .csv
import pandas as pd
def xlsx_to_csv_pd():
data_xls = pd.read_excel(‘demo.xlsx’, index_col=0)
data_xls.to_csv(‘demo.csv’, encoding=‘utf-8’)
.csv 文件转 .xlsx
import pandas as pd
def csv_to_xlsx_pd():
csv = pd.read_csv(‘1.csv’, encoding=‘utf-8’)
csv.to_excel(‘1.xlsx’, sheet_name=‘data’)
MATLAB
同样的原因,MATLAB 读取文本文件均可用 textscan 。
.txt 文件
clc;clear;
filename = ‘filename.txt’;
file = fopen(filename);%打开文件
columns = ‘s%s%s%s%s%s%’;%读几列就有几个’s%’
data = textscan(filename,columns,‘delimiter’, ’ ');%以制表符分隔
fclose(file);
.csv 文件
clc;clear;
filename = ‘filename.csv’;
file = fopen(filename);%打开文件
columns = ‘s%s%s%s%s%s%’;%读几列就有几个’s%’
data=textscan(filename,columns,‘delimiter’, ‘,’);%以 , 分隔
fclose(file);
.tsv 文件
clc;clear;
filename = ‘filename.tsv’;
file = fopen(filename);%打开文件
columns = ‘s%s%s%s%s%s%’;%读几列就有几个’s%’
data=textscan(filename,columns,‘delimiter’, ’ ');%以制表符分隔
fclose(file);
.json 文件
MATLAB 读取 .json 文件需要下载 jsonlab 包。
clc;clear;
addpath(‘E:\PIR\PIR_V3.0\jsonlab-1.5’); %添加jsonlab包的存放路径
filename = ‘filename.json’; %文件名称
jsonData = loadjson(filename);%jsonData是struct结构
data = jsonData.u’;
二、绘图
MATLAB
点状图
plot(xi,yi,‘>’,‘Color’,[x/255 x/255 x/255]);%右三角,颜色为(x,x,x)
%符号可为’o’,‘.’,‘+’,‘>’,'<'等
xlabel(‘x/x’)
ylabel(‘y/y’)
title(‘Title’)
set(gcf,‘unit’,‘normalized’,‘position’,[0.2,0.2,0.8,0.6]);%固定大小
折线图
xi= 1: 0.25:76;
yi = interp1(X,Y,xi,‘spline’);%插值,将步长由1变为0.25
plot(xi,yi,‘Color’,[x/255 x/255 x/255],‘LineWidth’,1);%颜色为(x,x,x),线条粗细为1
xlabel(‘x/x’)
ylabel(‘y/y’)
title(‘Title’)
set(gcf,‘unit’,‘normalized’,‘position’,[0.2,0.2,0.8,0.6]);%固定大小
条形图
y=[1 2 3,1 2 3];%分组条形图
tiledlayout(2,1)%指定纵横比
bar(y);
bar(x,y);
bar(y,‘stacked’);%与y=[1 2 3,1 2 3]结合,同一个柱形上分层显示
bar(x,y,0.6);%相对宽度控制间隔
bar(y,‘FaceColor’,[0 .5 .5],‘EdgeColor’,[0 .9 .9],‘LineWidth’,1.5);%多参数
y = [10 15 20; 30 35 40; 50 55 62];
b = bar(y);
b(3).FaceColor = [.2 .6 .5];%每组第三列设为绿色
其他功能
%绘制多张
figure(i);
%plot
hold on;
figure(i+1);
%plot
%多线同图
%plot
hold on;
%plot
python
点状图
import matplotlib.pyplot as plt
plt.rcParams[‘figure.figsize’] = (48.0, 30.0) # 设置figure_size尺寸
plt.plot(X,Y,‘.’)
plt.xlabel(“x-label”,fontproperties=zhfont,fontsize=‘32’)
plt.ylabel(“y-label”,fontproperties=zhfont,fontsize=‘32’)
plt.title(“title”,fontproperties=zhfont,fontsize=‘32’)
折线图
import matplotlib.pyplot as plt
plt.rcParams[‘figure.figsize’] = (48.0, 30.0) # 设置figure_size尺寸
plt.plot(X,Y)
plt.xlabel(“x-label”,fontproperties=zhfont,fontsize=‘32’)
plt.ylabel(“y-label”,fontproperties=zhfont,fontsize=‘32’)
plt.title(“title”,fontproperties=zhfont,fontsize=‘32’)
其他常用功能
# 绘制多张
plt.subplot(221) # 两行两列的第一个
plt.plot(X1,Y1,‘.’)
plt.subplot(222) # 两行两列的第二个
plt.plot(X2,Y2,‘.’)
plt.subplot(223) # 两行两列的第三个
plt.plot(X3,Y3,‘.’)
plt.subplot(224) # 两行两列的第四个
plt.plot(X4,Y4,‘.’)
# 多张同图
plt.plot(X1,Y1,‘.’)
plt.plot(X2,Y2,‘.’)
# 设置分辨率
## 绘制分辨率
plt.rcParams[‘figure.figsize’] = (24.0, 20.0) # 默认的像素为[6.0,4.0],分辨率为100,图片尺寸为 600&400
plt.rcParams[‘figure.dpi’] = 300 # 直接设置分辨率,一般使用这两种方式之一
## 保存分辨率
plt.rcParams[‘savefig.dpi’] = 300 # 预先设定保存图片像素
plt.savefig(‘demo.jpg’, dpi=200) # 保存时指定分辨率,一般使用这两种方式之一
# title 格式
## 该条(title 格式)参考`开码牛`的博客
plt.title(‘Interesting Graph’,fontsize=‘large’,fontweight=‘bold’) 设置字体大小与格式
plt.title(‘Interesting Graph’,color=‘blue’) 设置字体颜色
plt.title(‘Interesting Graph’,loc =‘left’) 设置字体位置
plt.title(‘Interesting Graph’,verticalalignment=‘bottom’) 设置垂直对齐方式
plt.title(‘Interesting Graph’,rotation=45) 设置字体旋转角度
plt.title(‘Interesting’,bbox=dict(facecolor=‘g’, edgecolor=‘blue’, alpha=0.65 )) 标题边框
常用配色
| #5d7a9a | #ec554a | #ffad60 | #8bc24c | #2d2d2d |
| #bc8420 | #593e1a | #ffeb28 | #996699 | #0fff95 |
题外话

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。


二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试宝典


简历模板
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
若有侵权,请联系删除
相关文章:
数学建模竞赛常用代码总结-PythonMatlab
数学建模过程中有许多可复用的基础代码,在此对 python 以及 MATLAB 中常用代码进行简单总结,该总结会进行实时更新。 一、文件读取 python (pandas) 文件后缀名(扩展名)并不是必须的,其作用主要一方面是提示系统是用…...
在Ubuntu上安装CUDA和cuDNN以及验证安装步骤
在Ubuntu上安装CUDA和cuDNN以及验证安装步骤 本教程详细介绍了如何在Ubuntu操作系统上安装CUDA(NVIDIA的并行计算平台)和cuDNN(深度神经网络库),以及如何验证安装是否成功。通过按照这些步骤操作,您将能够…...
SecureCRT ssh链接服务器
SecureCRT通过密钥进行SSH登录 说明: 一般的密码方式登录容易被密码暴力破解。所以一般我们会将 SSH 的端口设置为默认22以外的端口,或者禁用root账户登录。其实可以通过密钥登录这种方式来更好地保证安全。 密钥形式登录的原理是:利用密钥…...
linux之perf(3)top实时性能
Linux之perf(3)top实时性能 Author:Onceday Date:2023年9月3日 漫漫长路,才刚刚开始… 注:该文档内容采用了GPT4.0生成的回答,部分文本准确率可能存在问题。 参考文档: Tutorial - Perf Wiki (kernel.org)perf-to…...
【linux命令讲解大全】076.pgrep命令:查找和列出符合条件的进程ID
文章目录 pgrep补充说明语法选项参数实例 从零学 python pgrep 根据用户给出的信息在当前运行进程中查找并列出符合条件的进程ID(PID) 补充说明 pgrep 命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程ID。每一个进程ID以一个…...
微信小程序开发---条件渲染和列表渲染
目录 一、条件渲染 (1)基本使用 (2)block (3)hidden 二、列表渲染 (1)基本使用 (2)手动指定索引和当前项的变量名 (3)wx:key的…...
【ES6】require、export和import的用法
在JavaScript中,require、export和import是Node.js的模块系统中的关键字,用于处理模块间的依赖关系。 1、require:这是Node.js中引入模块的方法。当你需要使用其他模块提供的功能时,可以使用require关键字来引入该模块。例如&…...
Vue + Element UI 前端篇(九):接口格式定义
接口请求格式定义 前台显示需要后台数据,我们这里先把前后端交互接口定义好,没有后台的时候,也方便用mock模拟。 接口定义遵循几个规范: 1. 接口按功能模块划分。 系统登录:登录相关接口 用户管理:用户…...
部署Django报错-requires SQLite 3.8.3 or higher
记一次CentOS7部署Django项目时的报错 问题出现 在部署测试环境时,有需要用到一个python的后端服务,要部署到测试环境中去 心想这不是so easy吗,把本地调试时使用的python版本及Django版本在服务器上对应下载好,然后直接执行命…...
什么是网络存储服务器
网络存储器就像一台只有存储功能的终端,独立地工作,里面带有固定的系统,但可以自己设置部分参数功能,可以接入服务器或者电脑进行设置,网络存储服务器实际上就是精简的、小型化的服务器,同样由主板、CPU&am…...
lv3 嵌入式开发-10 NFS服务器搭建及使用
目录 1 NFS服务器介绍 1.1 NFS服务器的介绍 1.2 NFS服务器的特点 1.3 NFS服务器的适用场景 2 NFS服务器搭建 2.1 配置介绍 2.2 常见错误 3 WINDOWS下NFS服务器搭建(扩展) 1 NFS服务器介绍 1.1 NFS服务器的介绍 nfs(Network File Sys…...
后流量时代的跨境风口:Facebook广告
Facebook拥有超过25亿各个年龄段和人群的每月活跃用户,可以帮助您接触世界各地的相关消费者。无论您是需要吸引新的潜在客户还是吸引回头客访问您的在线商店,Facebook广告都可以为电子商务提供丰厚的投资回报;无论您是在沃尔玛、eBay、亚马逊…...
Java基础学习笔记-2
前言 在计算机编程领域,条件语句和控制流结构是构建程序逻辑的基本组成部分。它们允许程序员根据不同的条件执行不同的操作,从而使程序更加灵活和智能。本文将深入探讨Java编程语言中的条件语句和控制流,提供了一系列实用的示例和技巧&#…...
Mongodb 安装脚本(附服务器自启动)
shell脚本 #!/bin/bash #mail:xuelanchnet.com #function:auto install mongodb [ $(id -u) ! "0" ] && echo "Error: You must be root to run this script" && exit 1 logfile"/var/log/mongod_install.log" softdir"/s…...
yolov5的pytorch配置
1. conda create -n rdd38 python3.82、pip install torch1.8.0 torchvision0.9.0 torchaudio0.8.0 -f https://download.pytorch.org/whl/cu113/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple 3、conda install cudatoolkit10.2...
ISO 19712-1-2008装饰用实体面材检测
实体面材是指由聚合物材料、填料和颜料组成,经浇筑或压制等工艺成型的板型产品或非板型产品,主要用于厨房台面,家具等领域。 ISO 19712-1-2008装饰用实体面材测试 测试项目 测试标准 耐干热 ISO 19712-3 ISO 19712-2 耐湿热 ISO 19712-…...
华为OD机试 - 最多颜色的车辆 - 数据结构map(Java 2022Q4 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路1、核心思想2、题做多了,你就会发现,这道题属于送分题,为什么这样说?3、具体解题思路: 五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B…...
Mybatis 插入、修改、删除
前面几篇我们介绍了使用Mybatis查询数据,并且也了解了如何在Mybatis中使用JDK的日志系统打印日志;本篇我们继续介绍如何使用Mybatis完成数据的插入、修改和删除。 如果您对查询数据和Mybatis集成JDK日志系统不太了解,建议您先进行了解后再阅…...
2023年9月DAMA-CDGA/CDGP数据治理认证火热招生中
DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…...
【SpringCloudAlibaba】Seata分布式事务使用
文章目录 分布式事务问题示例Seata概述、官网一个典型的分布式事务过程处理过程全局GlobalTransactional分布式交易解决方案流程图 Seata安装下载修改conf目录下的application.yml配置文件dashboard demo 分布式事务问题示例 单体应用被拆分成微服务应用,原来的三个…...
Vue2集成腾讯地图:动态标点与跨域请求实战
1. Vue2项目集成腾讯地图的前期准备 第一次在Vue2项目中使用腾讯地图时,我踩了不少坑。最头疼的就是跨域问题——浏览器出于安全考虑,默认禁止前端直接请求不同源的资源。而腾讯地图的API接口正好属于这种情况。经过多次尝试,我发现vue-jsonp…...
ArcMap新手必看:5分钟搞定面要素的四至信息提取(附字段重命名技巧)
ArcMap新手实战:5分钟高效提取面要素四至信息与字段优化技巧 刚接触ArcMap的GIS实习生或规划人员,常常需要快速处理行政区划数据并生成规范的四至报告。面对属性表中密密麻麻的英文字段名和冗余数据,如何高效完成从数据加载到结果美化的全流程…...
OpenUSD终极渲染器切换指南:Storm vs Prman性能深度对比
OpenUSD终极渲染器切换指南:Storm vs Prman性能深度对比 【免费下载链接】OpenUSD Universal Scene Description 项目地址: https://gitcode.com/GitHub_Trending/ope/OpenUSD OpenUSD(Universal Scene Description)作为强大的3D场景描…...
告别显卡驱动残留困扰:Display Driver Uninstaller的深度清理全解析
告别显卡驱动残留困扰:Display Driver Uninstaller的深度清理全解析 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers…...
Bing Wallpaper自动化部署:GitHub Actions与持续集成
Bing Wallpaper自动化部署:GitHub Actions与持续集成 【免费下载链接】bing-wallpaper 项目地址: https://gitcode.com/gh_mirrors/bi/bing-wallpaper Bing Wallpaper项目是一个专注于收集和展示Bing每日壁纸的开源项目,通过自动化部署可以确保壁…...
RK806与RK3588的电源设计最佳实践:如何优化BUCK和LDO布局布线
RK806与RK3588电源设计实战指南:从BUCK到LDO的全面优化策略 在嵌入式系统设计中,电源管理往往是最容易被忽视却又至关重要的环节。RK3588作为一款高性能处理器,其稳定运行高度依赖于RK806电源管理芯片的精准供电。我曾参与过多个采用这套方案…...
你的电动车续航打折了?可能是AMT换挡逻辑没调好!聊聊经济性换挡那些事儿
你的电动车续航打折了?可能是AMT换挡逻辑没调好!聊聊经济性换挡那些事儿 最近在车主群里经常看到这样的抱怨:"明明官方标称续航500公里,怎么我开起来连400都跑不到?"作为一位开了三年电动车的"老司机&q…...
新手必看|SRC平台漏洞挖掘全攻略(2026干货版):平台详解+规则必记+实操步骤
新手必看|SRC平台漏洞挖掘全攻略(2026 干货版):平台详解规则必记实操步骤 对于网络安全新手、计算机相关专业学生,以及想转型安全领域的从业者而言,SRC平台是合法练手、积累实战经验、衔接职场的核心载体。…...
代理优先(Agent-First)软件开发全生命周期流程解析
1. 引言:从“手动编码”到“系统导航”的范式转移 在传统的软件工程中,人类工程师是代码的“砖瓦匠”,将大部分认知带宽消耗在每一行代码的编写与微观调试上。然而,OpenAI 最新的实践证明了一种激进的范式转移:在一个为…...
保姆级教程:用300条数据微调SenseVoice语音模型(附数据格式详解)
300条数据高效微调SenseVoice语音模型的实战指南 去年在为一个医疗咨询项目定制语音识别系统时,我发现通用模型对专业医学术语的识别准确率不足60%。当时团队仅有400条标注数据,却通过SenseVoice的微调功能在3小时内将准确率提升至89%。本文将分享这种小…...
