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


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

    .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学习资料》免费赠送🆓!(安全链接,放心点击)

    若有侵权,请联系删除

  • 相关阅读:
    我的为人处事真的有问题吗?
    VisionPro学习笔记(1)——软件介绍和基本使用
    【Android-实战】1、Room 使用 Flow 和 collect() 监听数据库的变化、动态更新页面
    【Azure 环境】Azure 云环境对于OpenSSL 3.x 的严重漏洞(CVE-2022-3602 和 CVE-2022-3786)的处理公告
    github分支管理
    VisualStudio2022环境下Release模式编译dll无法使用TLS函数问题
    githubssh配置
    因子特征工程:基于pandas和talib(代码)
    luffy-(13)
    django项目: ModuleNotFoundError: No module named ‘import_export‘
  • 原文地址:https://blog.csdn.net/aobulaien001/article/details/132733762