文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-12 13:15

关注

数学建模过程中有许多可复用的基础代码,在此对 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学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

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

img

五、实战案例

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

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

来源地址:https://blog.csdn.net/aobulaien001/article/details/132733762

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯