数学建模竞赛常用代码总结-Python&Matlab

2023-11-03

数学建模过程中有许多可复用的基础代码,在此对 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
---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数学建模竞赛常用代码总结-Python&Matlab 的相关文章

  • 将 pandas 数据框中的列减去其第一个值

    我需要将 pandas 数据帧的一列中的所有元素减去其第一个值 在这段代码中 pandas 抱怨 self inferred type 我猜这是循环引用 df Time df Time df Time 0 在这段代码中 pandas 抱怨为
  • python 可以检测它运行在哪个操作系统下吗?

    python 可以检测操作系统 然后为文件系统构建 if else 语句吗 我需要将 Fn 字符串中的 C CobaltRCX 替换为 FileSys 字符串 import os path csv from time import strf
  • 如何屏蔽 PyTorch 权重参数中的权重?

    我正在尝试在 PyTorch 中屏蔽 强制为零 特定权重值 我试图掩盖的权重是这样定义的def init class LSTM MASK nn Module def init self options inp dim super LSTM
  • 为什么我不能导入 geopandas?

    我唯一的代码行是 import geopandas 它给了我错误 OSError Could not find libspatialindex c library file 以前有人遇到过这个吗 我的脚本运行得很好 直到出现此错误 请注意
  • 替换字符串列表中的 \x00 的最佳方法?

    我有一个来自已解析 PE 文件的值列表 其中包括 x00每个部分末尾的空字节 我希望能够删除 x00字符串中的字节而不删除所有字节 x 文件中的 s 我试过做 replace and re sub 但并没有取得太大成功 使用Python 2
  • 如何在 Ubuntu 上安装 Python 模块

    我刚刚用Python写了一个函数 然后 我想将其做成模块并安装在我的 Ubuntu 11 04 上 这就是我所做的 创建 setup py 和 function py 文件 使用 Python2 7 setup py sdist 构建分发文
  • 如何更改充当按钮的范围的文本

    我正在为自定义 Web 应用程序编写自动化测试 我遇到了无法更改跨度文本的问题 我尝试过使用 driver execute script 但没有运气 如果我更好地了解 javascript 这确实会有帮助 据我所知 您无法单击跨度 并且列表
  • 用 Python 编写一个无操作或虚拟类

    假设我有这样的代码 foo fooFactory create 由于种种原因 fooFactory create 可能无法创建实例Foo 如果可以的话我想要fooFactory create 返回一个虚拟 无操作对象 这个对象应该是完全惰性
  • 在 Python 中使用 sec 函数的反函数

    我正在创建一个程序 用于计算从一定高度范围和设定初始速度发射射弹的最佳角度 在我需要使用的最终方程中 存在一个反 sec 函数 它导致了一些麻烦 我已经导入了数学并尝试使用 asec 无论如何 但是数学似乎无法计算反秒函数 我也明白 sec
  • Python 中 genfromtxt() 的可变列数?

    我有一个 txt具有不同长度的行的文件 每一行都是代表一条轨迹的一系列点 由于每条轨迹都有自己的长度 因此各行的长度都不同 也就是说 列数从一行到另一行不同 据我所知 genfromtxt Python 中的模块要求列数相同 gt gt g
  • python中函数变量的作用域

    假设我们有两个函数 def ftpConnect ftp FTP server ftp login ftp cwd path def getFileList ftpConnect files ftp nlst print files 如果我
  • 如何为多组精灵创建随机位置?

    我尝试使用 blit 和 draw 方法进行 for 循环 并为 PlayerSprite 和 Treegroup 使用不同的变量 for PlayerSprite in Treegroup surface blit PlayerSprit
  • 使用Python将图像转换为十六进制格式

    我的下面有一个jpg文件tmp folder upload path tmp resized test jpg 我一直在使用下面的代码 Method 1 with open upload path rb as image file enco
  • 在wxpython中使用wx.TextCtrl并在按钮单击后显示数据的简单示例 - wx新手

    我正在学习 python 并尝试使用 wxpython 进行 UI 开发 也没有 UI exp 我已经能够创建一个带有面板 按钮和文本输入框的框架 我希望能够在文本框中输入文本 并让程序在单击按钮后对输入框中的文本执行操作 我可以获得一些关
  • 在 Windows 上使用 IPython 笔记本时出现 500 服务器错误

    我刚刚在 Windows 7 Professional 64 位上全新安装了 IPython 笔记本 我采取的步骤是 从以下位置安装 Python 3 4 1http python org http python org gt pip in
  • Python 矩阵每一行的总和

    lista 1 2 3 4 5 6 7 8 9 print lista def filas lista res for elemento in lista x sum lista elemento res append x print re
  • 继续在 Matlab 中一遍又一遍地播放声音?

    我正在尝试创建一个 MATLAB 程序来每隔几分钟一遍又一遍地播放声音 现在我将其设置为每隔几秒播放一次 只是为了消除系统中的一些错误 但是 当我的程序尝试重播声音时 我收到此错误 Error using gt audioplayer au
  • 如何在单独的文件中使用 FastAPI Depends 作为端点/路由?

    我在单独的文件中定义了一个 Websocket 端点 例如 from starlette endpoints import WebSocketEndpoint from connection service import Connectio
  • 如何对字符串列表进行排序?

    在 Python 中创建按字母顺序排序的列表的最佳方法是什么 基本回答 mylist b C A mylist sort 这会修改您的原始列表 即就地排序 要获取列表的排序副本而不更改原始列表 请使用sorted http docs pyt
  • 如何识别图形线条

    我有以下格式的路径的 x y 数据 示例仅用于说明 seq p1 p2 0 20 2 3 1 20 2 4 2 20 4 4 3 22 5 5 4 22 5 6 5 23 6 2 6 23 6 3 7 23 6 4 每条路径都有多个点 它们

随机推荐

  • vue中render的常见用法(渲染按钮禁用/隐藏等状态)

    简介 在vue开发前端页面的过程中 对于一些较复杂的嵌套样式 用template不太方便的 一般要用到render函数来进行渲染 render本身是一个函数 它的参数也是一个函数 render h gt return h div 数据对象或
  • ConnectionString属性详解(连接字串)

    NET SQL Server连接字符串句法 在对象实例化或者建立期间 数据库连接字符串通过属性或方法被传递到必要的对象 连接字符串的格式是一个以分号为界 划分键 值参数对的列表 列表A中包括了一个C 中的例子 说明了怎样用创建SqlConn
  • SCConv:用于特征冗余的空间和通道重构卷积

    文章目录 摘要 1 简介 2 方法 2 1 SRU用于空间冗余 2 2 CRU用于通道冗余 2 3 复杂性分析 3 实验 3 1 实验设置 3 3 基于CIFAR的图像分类 3 4 基于ImageNet的图像分类 3 5 物体检测 4 结论
  • Java继承

    各位朋友们 大家好 今天我为大家分享的是Java上面一个很重要的知识点 继承 继承也被称为Java的灵魂之一 文章目录 为什么要使用继承 子类怎样继承父类 在子类中如何访问父类的成员 super关键字 当父类中有构造方法时 this关键字
  • 【python】2019CA-C-最大降雨量

    问题描述 由于沙之国长年干旱 法师小明准备施展自己的一个神秘法术来求雨 这个法术需要用到他手中的49张法术符 上面分别写着1至49这49个数字 法术一共持续7周 每天小明都要使用一张法术符 法术符不能重复使用 每周 小明施展法术产生的能量为
  • JUnit4

    1 JUnit4全面引入Annotation来执行我们编写的测试 2 JUnit4并不要求测试类继承TestCase父类 3 在一个测试类中 所有被 Test注解所修饰的public void方法都是test case 可以被JUnit所执
  • 关于this指针

    一个类的对象中实际只包含了该对象的数据成员信息 当我们创建了多个类的对象时 使对象1调用该类的成员函数 为什么可以改变对象1中的信息 而不去设置其他对象的信息 成员函数在类中只有一份 所有该类的对象共同使用 编译器是如何识别并处理的呢 编译
  • 关于二叉树二叉堆的一些基本概念

    文章转载自 http blog csdn net include u article details 48092129 在看到算法导论的堆排序的时候 对于二叉树 二叉堆概念不是很清楚 所以查阅了一些资料和博客 将相关的基本概念总结在博客里面
  • 计算机网络教程网线制作,如何制作网线 进来看看你就会【图文教程】

    随着计算机的快速发展 现代 社会人们已经离不开网络 网络拉近了人们的距离 给人们提供了一个无需面对面就能够进行交流的平台 如今 网络已经渗透到生活的方方面面 购物 聊天 谈工作等 都会使用网络来进行 构建出如此庞大的网络并将大家连在一起的是
  • 如何赚钱比较快副业?这三个副业让你慢慢变有钱!

    一般来讲上班族 都会有充分的休息时间 如何利用好下班这点时间 去搞点副业赚点钱 我相信这是很多人都会有这种想法 现在有很多兼职行业 就是在自己空闲的时间 可以去做点兼职 赚一点生活费 当然这样也是挺好的 但是兼职的话 很多就需要自己出门去做
  • 使用逻辑回归预测患者是否患有特定疾病:R语言机器学习实战

    目录 引言 基础知识 准备工作 数据预处理 数据探索 模型训练
  • vim光速开发,你值得拥有

    文章目录 vim设计哲学 vim的模式 什么是可视模式 光标移动 动作 motion 操作符 operator 操作符 operator 动作 motion 实际使用 大小写转换 easymotion vim surround TIPS i
  • 逆向学习入门

    一 逆向工具 1 反汇编反编译工具 IDA pro Hex Ray 绝大部分指令集架构 dnspy net C JADX GDA JEB APK andriod Jd gui java python字节码 uncomply6反编译 pyc
  • 【牛客SQL】SQL2 查找入职员工时间排名倒数第三的员工所有信息

    题目描述 示例1 输入 drop table if exists employees CREATE TABLE employees emp no int 11 NOT NULL birth date date NOT NULL first
  • Pyqt5实战修炼之窗口自适应大小——Qtdesigner

    问题描述 QT Designer作为一个方便的可视化界面设计工具 很多新手在使用的时候只是简单的拖动左边菜单栏内的控件 摆放至合适的位置 但是当窗口大小发生变化的时候就会出现内容显示不全 或过多的留白 很不美观 问题分析 为什么会这样呢 主
  • Mysql查询库、表、索引、碎片大小

    查看表和索引和大小 SELECT TABLE NAME DATA LENGTH INDEX LENGTH DATA LENGTH INDEX LENGTH AS LENGTH TABLE ROWS CONCAT ROUND DATA LEN
  • 【MySQL】MySQL中如何对数据进行排序

    目录 MySQL中的数据排序 一 排序的基本使用 二 使用列的别名来排序 三 二级排序 MySQL中的数据排序 一 排序的基本使用 在查询数据时 如果没有使用排序操作 默认情况下SQL会按元组添加的顺序来排列查询结果 在SQL中 使用关键字
  • 单键开关机电路

    前一段子在板子上使用一个单片机控制的自杀式一键开关机电路 经过了好几天的测试才把它给调通了 最后居然是芯片坏了的问题 嗯 估计电路也有问题 不稳定 最近又看了几天的单键开关机电路 然后用protues仿真了一个不用单片要控制的单键开关电路
  • Dokcer14_5:Docker Compose volumes解析、Docker Compose volumes目录路径生成规则

    Dokcer14 5 Docker Compose volumes解析 Docker Compose volumes目录路径生成规则 docker compose volumes语法 语法格式及其三种变体 1 无来源 匿名挂载 主机系统上的
  • 数学建模竞赛常用代码总结-Python&Matlab

    数学建模过程中有许多可复用的基础代码 在此对 python 以及 MATLAB 中常用代码进行简单总结 该总结会进行实时更新 一 文件读取 python pandas 文件后缀名 扩展名 并不是必须的 其作用主要一方面是提示系统是用什么软件