Python与数学建模基础
第一章:NumPy
1.什么是NumPy
全称:
Numerical Python
意思:
Python 数值计算库。
它主要解决:
(1)大量数字存储
(2)数学运算
(3)矩阵计算
(4)随机模拟
2.ndarray:NumPy里面的数据容器
2.1.概念
一维矩阵:np.array([1,2,3])
二维矩阵:np.array([[1,2],[3,4]])
类型为:<class 'numpy.ndarray'>
2.2.shape
代表维度
例如:
b=np.array([ [1,2,3], [4,5,6]])
print(b.shape)
输出为:(2,3)意味2行3列
再看一维:
b=np.array([1,2,3,4,5])
print(b.shape)
输出为:(5,)代表有5个元素
2.3.ndim(维度)
告诉你是几维数组,一维就是1.
2.4.dtype(数据类型)
print(a.dtype)可能输出:int64,代表数组的数据类型,小数为float64
2.5.总结


| 属性 | 作用 |
|---|---|
type() | 看变量是不是 ndarray |
shape | 看数组结构(几行几列) |
ndim | 看数组维度 |
dtype | 看元素类型 |
3:NumPy数组创建方式
1. np.array()
3.2.np.zeros()
作用:
创建全是0的数组。
一维:np.zeros(5)
二维:np.zeros((2,3))注意,有两个括号
3.3.np.ones()
作用:
创建全是0的数组。
3.4.np.arange()
作用:
生成等差整数序列
格式为:np.arange(start, stop, step)
| 参数 | 含义 |
|---|---|
| start | 开始 |
| stop | 结束(不包含) |
| step | 步长 |
例如:np.arange(0,10,2)
生成:0,2,4,6,8
3.5.np.linspace()
作用:
在指定范围内生成固定数量的数据
格式为:np.linspace(start, stop, num)
例如:np.linspace(0,10,5)
意思:0到10之间生成5个点。
结果:0,2.5,5,7.5,10
6.总结


4、NumPy数组索引和切片
1.一维和数组几乎相同,除了初始化部分:a=np.array([10,20,30,40,50])


4.2.二维数组索引
有数组:
A=np.array([
[1,2,3],
[4,5,6],
[7,8,9]
])
二维数组的位置:
列
0 1 2
行0 1 2 3
行1 4 5 6
行2 7 8 9
所以,第0行:A[0] 结果:[1 2 3]
取具体元素,格式:A[行,列]
取整行:例如第一行为: A[0,:]
取整列:例如第二列为: A[:,1] (在这两个中“:”代表全部)


这里涉及连着取好几列(行)的问题,要注意
4.3.reshape
作用:改变数据结构,形状(比如一维变二维)
格式:数组.reshape(新的形状)
例如原数组:a=np.array([1,2,3,4,5,6]) ,要变成:两行三列的形式
写:b=a.reshape(2,3)
限制:
1.元素数量必须一致
2.reshape不会改变原数组
a还是原来的数据。
b是新的视图

4.4.转置 transpose(矩阵行列交换)
线性代数的行列式转置
方法一:a.T
方法二:np.transpose(a)
5:NumPy 数学运算
5.1.数组加减法
例如:
import numpy as np
a=np.array([1,2,3])
b=np.array([4,5,6])
直接a+b,a-b
5.2.数组乘除法
a*b a/b
注意:不是矩阵乘法,而是对应元素相乘。(相同位置元素相乘,结果还是数组)

5.3.矩阵乘法(@运算符)
A @ B

两者区别


六:广播机制(Broadcasting)
1.标量广播
例如:a=np.array([1,2,3])
执行:a*2
结果为:[2 4 6]
相当于:[1,2,3]×[2,2,2]
2.一维向量加二维矩阵

执行:A+b

6:条件筛选(布尔索引)
6.1.普通判断
例如:a=np.array([10,20,30,40,50])
现在我要找:大于30的数据。
Python普通思路:循环:
for i in a:
if i>30:
但是 NumPy 不需要,直接:
a>30
输出:[False False False True True] 得到一个布尔数组
6.2.使用条件取数据
a[a>30],直接得到数据
多条件筛选:&
20<x<50写作:(a>20)&(a<50) 每个条件必须加括号
6.3.修改满足条件的数据
a[a<30]=0就可以了。
7:NumPy常用统计函数
7.1.一维数组常见函数
1. sum 求和
np.sum(a)
2. mean 平均值
np.mean(a)
3. max 最大值
np.max(a)
4. min 最小值
np.min(a)
5. std 标准差
np.std(a)
7.2.二维数组统计 + axis
7.2.1. 不指定 axis
例如:np.sum(X),全部加起来
7.2.2. axis=0(按列计算)
先看:np.sum(X,axis=0)
什么意思?axis=0:沿着第0维变化。
简单理解:压缩行,保留列。

7.2.3 axis=1(按行计算)
np.sum(X,axis=1)
压缩列,保留行。
| axis | 方向 | 结果 |
|---|---|---|
| 不写 | 全部计算 | 一个数 |
| axis=0 | 按列 | 每列一个结果 |
| axis=1 | 按行 | 每行一个结果 |
8:随机数(Random)
8.1. 随机小数
NumPy随机模块:np.random
生成0~1之间随机数:np.random.rand()
8.2. 生成多个随机数
例如:np.random.rand(5)
生成5个:[0,1)之间的小数。
8.3. 生成随机整数
使用:np.random.randint()
格式:np.random.randint(low,high,size) 注意,还是不包含右边
8.4. 生成随机矩阵
随机整数矩阵: np.random.randint(0,100,(3,3))
8.5. 固定随机结果
np.random.seed(0)
print(np.random.rand())
以后每次运行结果一样。
9:常用数学函数
1. 平方根 sqrt
np.sqrt(a)
2. 指数 exp
np.exp(a) e的a次方
3. 对数 log
np.log(a) ln(x)
4. 三角函数
np.sin(a)
np.cos(a)
用弧度制 π
十:线性代数基础操作
NumPy提供:np.linalg
1.求矩阵行列式 determinant
数学:∣A∣
代码:np.linalg.det(A)
2. 求逆矩阵 inverse
数学:A−1
代码:np.linalg.inv(A)
3. 求特征值 eigenvalues
数学:Ax=λx
代码:np.linalg.eig(A)
返回:
- 特征值
- 特征向量
4. 求解线性方程组
例如:Ax=b
代码:np.linalg.solve(A,b)

第二章:Pandas
1:什么是Pandas
Pandas 是 Python 里面专门处理表格数据的工具
2:创建DataFrame
df=pd.DataFrame(data)
意思:把字典转换成表格。
现在:df就是Excel。
例如:
import pandas as pd
data = {
"城市":["北京","上海","广州"],
"GDP":[36102,38700,25000],
"人口":[2189,2487,1500]
}
df = pd.DataFrame(data)
print(df)
3:查看 DataFrame 数据
df = pd.read_excel("城市经济数据.xlsx")
3.1. 查看前几行:head()
格式:df.head()
查看前n行:df.head(n)
3.2.查看数据规模:shape
格式:df.shape 和numpy是一样的,表示几行几列,区别:代码上没有()
3.3. 查看列名:columns
作用:知道有哪些变量。
格式:df.columns
输出:Index(['城市','GDP','人口'],dtype='object')
3.4. 查看数据类型:info()
作用:每一列是什么类型。
代码:df.info()
输出:
<class 'pandas.core.frame.DataFrame'>
列:
城市 object
GDP int64
人口 int64
3.5. 查看统计信息:describe()
代码:df.describe()
它会自动计算:
- 平均值
- 标准差
- 最小值
- 最大值
- 四分位数

4:DataFrame 数据访问
4.1.取一列数据
写:df["销量"]
和numpy的数组区别:
Pandas这一列带有:
- 列名
- 索引
0 100
1 120
2 150
3 170
4 200
前面那一列叫做索引
4.2.取多列数据
df[["温度","销量"]]
注意这里有两个中括号
外层:表示 DataFrame取数据。
里面:是一个列表。
4.3.按位置取行:iloc
代码:df.iloc[0]
输出:温度 25
湿度 60
销量 100
4.4.取多行
代码:df.iloc[0:3]
遵循切片规则,左闭右开
4.5.条件筛选
例如:找销量大于150的数据。
数学表达:
销量 > 150
Pandas:df["销量"]>150
得到:0 False
1 False
2 False
3 True
4 True
它不是数据,它是判断结果。
然后,把它放回 df:
df[df["销量"]>150]


5:修改 DataFrame 数据
5.1.增加一列数据
现有:
data={
"温度":[25,28,30,32,35],
"销量":[100,120,150,170,200]
}
我们想增加利润,例如:利润 = 销量 × 10
可以:df["利润"]=df["销量"]*10
5.2.增加固定值列
df["年份"]=2026 这一列全是2026
5.3.修改已有列
df["销量"]=df["销量"]*10
原有列会被覆盖
5.4.删除列
行:axis=0
列:axis=1
代码:df.drop("年份",axis=1)
注意:原来的df没有改变,可以:df = df.drop("温度",axis=1)
5.5.修改某一个数据
代码:df.loc[0,"销量"]=120

6:缺失值处理(NaN)
6.1.概念
| 城市 | 人口 | GDP |
|---|---|---|
| 北京 | 2189 | 36102 |
| 上海 | 2487 | 38700 |
| 广州 | 空 | 25000 |
| 深圳 | 1300 | 空 |
“空”,在 Pandas 里面叫:NaN
6.2.制造一个缺失数据
import pandas as pd
import numpy as np
data={
"温度":[25,28,None,32,35],
"销量":[100,120,150,None,200]
}
df=pd.DataFrame(data)
print(df)
运行结果None会变成NaN
6.3.查看哪里缺失
方法:df.isnull()
输出false为有数据,True为无数据
比赛考 :统计每列缺多少:df.isnull().sum()
结果为:温度 1
销量 1
6.4.删除缺失数据
方法:df.dropna()
意思:删除包含NaN的行。
返回新表,不修改原 df
6.5.填充缺失数据
方法:df.fillna(0)
NaN全部填入0
也可以填平均值:df["温度"].fillna(df["温度"].mean())
返回新表,不修改原 df


7:排序、分组、统计
data={
"城市":["北京","上海","广州","深圳"],
"GDP":[36102,38700,25000,32000]
}
7.1.排序
格式:按GPT排,df.sort_values("GDP")
默认:从小到大。
想要从大到小:df.sort_values( "GDP",ascending=False)
结果:
| 城市 | GDP |
|---|---|
| 上海 | 38700 |
| 北京 | 36102 |
| 深圳 | 32000 |
| 广州 | 25000 |
找GDP最高的10个城市:df.sort_values("GDP",ascending=False).head(10)
7.2.统计
df["GDP"].mean()平均值,像最大值,总和也是这样
7.3.分组
有销售数据:
| 地区 | 销量 |
|---|---|
| 北京 | 100 |
| 上海 | 200 |
| 北京 | 150 |
| 上海 | 300 |
data={
"地区":["北京","上海","北京","上海"],
"销量":[100,200,150,300]
}
df=pd.DataFrame(data)
分组:df.groupby("地区")意思是:按照地区分类。
求和:df.groupby("地区")["销量"].sum()
7.4.多个统计一起做:agg()
df.groupby("地区")["销量"].agg(
["mean","max","min"]
)
结果:
| 地区 | mean | max | min |
|---|---|---|---|
| 北京 | 125 | 150 | 100 |
| 上海 | 250 | 300 | 200 |


总结:性质不要括号,方法要括号sum。max这些要括号,shape这种不要括号
第三章:matplotlib
1.主要功能
1.1.添加标题
plt.title("Temperature")
1.2.添加坐标轴名字
X轴:plt.xlabel("Time")
Y轴:plt.ylabel("Temperature")
1.3.图例 legend
当有两个图例的时候
需要告诉别人:哪条线是什么。
plt.plot(x,y1,label="Model A")
plt.plot(x,y2,label="Model B")
plt.legend()
1.4.保存图片
代码:plt.savefig("result.png")
例如:
plt.plot(x,y)
plt.savefig("temperature.png")
plt.show()
在当前文件夹会生成temperature.png(在你下载的VS Code的文件夹里面)
指定位置:
plt.savefig(
"E:/数学建模/06_结果/temperature.png"
)
1.5.中文显示
Matplotlib默认:中文可能乱码。
plt.rcParams['font.sans-serif']=['SimHei']
加在x y坐标前面
1.6.图像保存(比赛推荐方式)
plt.savefig(
"result.png",
dpi=300,
bbox_inches='tight'
)
plt.show()(这句不要放在savefig前面,show之后可能会清空)
dpi表示分辨率,比赛建议300
bbox_inches,去除多余空白
plt.savefig(
"E:/数学建模/06_结果/图片/result.png",
dpi=300,
bbox_inches='tight'
)
可以指定位置
2:几个重要的图
1.折线图plot
一天温度:
| 时间 | 温度 |
|---|---|
| 8点 | 20 |
| 10点 | 25 |
| 12点 | 30 |
| 14点 | 32 |
代码:
import matplotlib.pyplot as plt
x = [8,10,12,14]
y = [20,25,30,32]
plt.plot(x,y)
plt.show()

分析:plt.plot(x,y) 意思:把这些点连接起来。
plt.show() 展示图片
1.2.散点图 scatter
例如:
import matplotlib.pyplot as plt
height=[160,165,170,175]
weight=[50,55,65,70]
plt.scatter(height,weight)
plt.xlabel("height")
plt.ylabel("weight")
plt.show()
1.3.柱状图 bar
比较大小。
例如:
import matplotlib.pyplot as plt
city=["A","B","C"]
population=[100,200,150]
plt.bar(city,population)
plt.show()
1.4.直方图 hist
看数据分布。
例如:
import matplotlib.pyplot as plt
score=[60,70,80,80,90,95,100]
plt.hist(score)
plt.show()

1.5.箱线图(Box Plot)
谁波动小。

代码:
import matplotlib.pyplot as plt
score=[55,60,65,70,72,75,78,80,82,85,90,95,100,150]
plt.boxplot(score)
plt.show()
注意:150可能是异常数据,如果直接看平均值可能被影响。
箱线图可以直接发现。
你会看到:
- 中间箱子表示主要数据范围
- 外面的点表示异常值
1.6.热力图(Heatmap)
用颜色表示数值大小。
有数据:
| 身高 | 体重 | 年龄 | |
|---|---|---|---|
| 身高 | 1 | 0.8 | 0.2 |
| 体重 | 0.8 | 1 | 0.3 |
| 年龄 | 0.2 | 0.3 | 1 |
这个矩阵:就是相关系数矩阵。
我们希望一眼看出哪些变量关系强。
使用 seaborn
热力图一般不用 matplotlib,使用seaborn
例如:
import seaborn as sns
import matplotlib.pyplot as plt
data=[
[1,0.8,0.2],
[0.8,1,0.3],
[0.2,0.3,1]
]
sns.heatmap(data)
plt.show()

1.7.多图绘制 subplot
论文经常:一张图放多个结果。
例如:左边真实值,右边预测值
用:plt.subplot()
例如:
import matplotlib.pyplot as plt
x=[1,2,3,4]
y1=[1,4,9,16]
y2=[2,4,6,8]
plt.subplot(1,2,1)
plt.plot(x,y1)
plt.title("A")
plt.subplot(1,2,2)
plt.plot(x,y2)
plt.title("B")
plt.show()
解释:
plt.subplot(1,2,1)1 行 2 列 第1个图
plt.subplot(2,2,3)
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
+---+---+
现在画第3个
1.8.总结
| 想表达的信息 | 推荐图 | Python函数 | 典型数学建模场景 |
|---|---|---|---|
| 一个变量随时间/过程变化趋势 | 折线图 | plt.plot() | 年份-GDP、温度变化、预测曲线、误差变化 |
| 两个变量之间是否存在关系 | 散点图 | plt.scatter() | 身高-体重、投入-产出、变量相关性初步观察 |
| 多个类别之间大小比较 | 柱状图 | plt.bar() | 不同城市人口、不同方案指标比较 |
| 数据出现次数和分布情况 | 直方图 | plt.hist() | 成绩分布、误差分布、随机数据分布 |
| 一组或多组数据稳定性、异常值 | 箱线图 | plt.boxplot() | 多算法性能比较、实验结果稳定性 |
| 多个变量之间相关程度 | 热力图 | sns.heatmap() | 相关系数矩阵、变量筛选 |
| 数据占比关系 | 饼图 | plt.pie() | 比例分析(比赛较少用) |
| 两个结果/多个模型同时展示 | 多图布局 | plt.subplot() | 论文排版、模型结果对比 |
| 地理位置数据 | 地图类图 | geopandas等 | 区域分布、空间分析 |
| 三维关系 | 三维图 | matplotlib 3D | 三变量关系展示 |
热力图关键词:
- 相关性矩阵
- 多变量
- 特征选择
| 题目描述 | 第一反应 |
|---|---|
| 预测未来趋势 | 折线图 |
| 验证模型预测效果 | 真实值+预测值折线图 |
| 分析因素影响 | 散点图 |
| 分析变量相关性 | 热力图 |
| 比较不同算法效果 | 箱线图/柱状图 |
| 展示误差变化 | 折线图 |
| 分析误差分布 | 直方图 |
| 展示实验重复结果 | 箱线图 |
第四章:SciPy
1:理解SciPy
NumPy负责“计算数据”,SciPy负责“解决数学问题”。
| 数学问题 | Python工具 |
|---|---|
| 矩阵计算 | NumPy |
| 积分 | SciPy |
| 方程求解 | SciPy |
| 优化 | SciPy |
| 统计 | SciPy |
| 符号推导 | SymPy |
2:SciPy常用模块
2.1.optimize
优化、求方程
以后:最大值,最小值,参数拟合经常用。
2.2.integrate
积分
2.3.interpolate
插值:插入数据
2.4.stats
统计例如:概率分布,假设检验
3:方程求解optimize:fsolve
是 SciPy 中用来寻找方程数值解的工具
from scipy.optimize import fsolve
例如:
from scipy.optimize import fsolve
def f(x):
return x**2 - 4
x = fsolve(f, 1)
print(x)返回值为2
fsolve(f, 1),中的1也就是告诉 fsolve:“你先从 x=1 附近开始找。”如果从-1开始找那么返回值是-2
因此:fsolve不一定帮你找到所有解
多个未知数
先定义:
def equations(vars):
x, y = vars
return [
x + y - 10, 找 x、y,使这两个式子同时等于0
x - y - 2
]
from scipy.optimize import fsolve
result = fsolve(equations, [1, 1])
print(result)
得到:[6. 4.]
单变量:
from scipy.optimize import fsolve
def f(x):
return 数学表达式
result = fsolve(f, 初始猜测值)
print(result)
多变量:
from scipy.optimize import fsolve
def equations(vars):
x, y = vars
return [
方程1,
方程2
]
result = fsolve(equations, [x初始值, y初始值])
print(result)
4:数值积分integrate:quad
来自:from scipy.integrate import quad
例如:
第一步:定义函数
![]()
代码:def f(x):
return x**2
第二步:调用quad
from scipy.integrate import quad
def f(x):
return x**2
result,error = quad(
f,
0,
1
)
print(result)
| Python | 数学 |
|---|---|
| f | 被积函数 |
| 0 | 积分下限 |
| 1 | 积分上限 |
5:优化求解 optimize:minimize
优化:在所有可能方案里面,找一个最好方案
minimize求最小值
例如:
的最小值
from scipy.optimize import minimize
def f(x):
return x**2-4*x+3
result=minimize(f,0) 这个0也是猜测值
print(result.x)
注意:minimize返回的不只是x
里面会有很多东西:message,success,fun,x,nit等等
例如:result.fun就是最小值,x是最小值的位置
要求最大值怎么办?把最小值变成最大值,如这里就是加负号
6:SciPy插值模块:interpolate
作用:已经有一些数据,但是中间缺数据,怎么办?
使用:from scipy import interpolate
最常用:interp1d() 一维插值
例如:
from scipy.interpolate import interp1d
x=[0,2,4]
y=[20,30,40]
f=interp1d(x,y)
print(f(3))
输出为:35.即预测x为3时y的值
这里是线性插值
7:数值微分
没公式,只有数据 → 差分求导
有公式:SymPy
例如:
import numpy as np
x=np.array([0,1,2,3])
y=np.array([0,1,4,9])
dy=np.gradient(y,x)
print(dy)
8:信号处理
导入:from scipy import signal
| 功能 | 函数 |
|---|---|
| 滤波 | filter |
| 寻找峰值 | find_peaks |
| 傅里叶分析 | fft |
| 卷积 | convolve |
1.滤波
最简单的平滑:移动平均,找平均值
2.SciPy寻找峰值
from scipy.signal import find_peaks
peaks=find_peaks(data)
找最高点:返回峰的位置
9:统计模块
导入:from scipy import stats
| 问题 | 函数 |
|---|---|
| 平均值 | mean |
| 方差 | var |
| 标准差 | std |
| 相关性 | pearsonr |
| 概率分布 | norm等 |
| 假设检验 | ttest等 |
和numpy差不多
相关性:
from scipy.stats import pearsonr
x=[160,170,180]
y=[50,65,80]
r,p=pearsonr(x,y)
print(r)
r:相关系数,p:显著水平
第五章:Sympy
前面 SciPy 的核心思想:给计算机数字,让它算结果
Sympy:我不知道具体数字,我想让计算机处理数学公式。符号计算 Python 库
1.符号变量
1.1.导入 SymPy
import sympy as sp
x = sp.Symbol('x')
print(x)
注意:这里x不再是数值了,x代表数学变量
多个变量:
一:x=sp.Symbol('x')
y=sp.Symbol('y')
二:x,y=sp.symbols('x y')
1.2.创建数学表达式
可以写:
import sympy as sp
x=sp.Symbol('x')
expr=x**2+3*x+5
print(expr)
1.3.表达式代入数字
import sympy as sp
x=sp.Symbol('x')
y=x**2+3*x+5
result=y.subs(x,2)
print(result)
subs():意思是替换
| 数学 | Python |
|---|---|
| f(x)=...f(x)=... | def f(x): |
| 表达式 x2+...x^2+... | expr=x**2+... |
| 代入 x=2x=2 | expr.subs(x,2) |
写表达式,不要直接f(x)会报错
2.符号表达式化简
2.1化简simplify
expr=x+x+x
result=sp.simplify(expr)
print(result)
输出为3*x
2.2展开 expand

sp.expand((x+1)**2)
输出为:x**2+2*x+1
2.3因式分解 factor

代码:sp.factor(x**2+2*x+1)
2.4合并分式 together

3.方程求解
sp.solve()符号求解,和scipy的fsolve的数值求解做好区分
3.1单项式
![]()
import sympy as sp
x=sp.Symbol('x')
expr=x**2-4
result=sp.solve(expr,x) x代表求解的变量
print(result)
输出为[2,-2]
3.2多项式

import sympy as sp
x,y=sp.symbols('x y')
eq1=x+y-8
eq2=x-y-2
result=sp.solve(
[eq1,eq2],
[x,y]
)
print(result)
输出:{x:5,y:3}
3.3与fsolve的区别
| fsolve | solve | |
|---|---|---|
| 库 | SciPy | SymPy |
| 类型 | 数值 | 符号 |
| 结果 | 近似数字 | 精确公式 |
| 需要初值 | 需要 | 不需要 |
| 速度 | 快 | 复杂方程可能慢 |
4.符号微分

使用:sp.diff()
完整:
import sympy as sp
x=sp.Symbol('x')
expr=x**2+3*x+1
result=sp.diff(expr,x) 对x求导
print(result)
输出:2*x+3
二阶求导:sp.diff(expr,x,2)
5.符号积分

直接输出符号积分,不是数字
5.1基本积分
sp.integrate()
例如:![]()
import sympy as sp
x=sp.Symbol('x')
expr=x**2
result=sp.integrate(expr,x)
print(result)
5.2integrate两个参数

sp.integrate(x**2+y,x),这里y当作常数
5.3定积分

sp.integrate( expr,(x,0,2))
5.4多个积分变量
例如:![]()
sp.integrate( x*y, x,y)
结语
到这里,我们已经把数学建模中最常用的五个 Python 库完整过了一遍:NumPy 负责数组与矩阵运算,Pandas 负责表格数据的读取、清洗与统计,matplotlib 负责把结果画成论文里能直接用的图,SciPy 负责求解方程、积分、优化与插值,SymPy 则负责符号推导。它们各司其职,又彼此配合,基本覆盖了从数据准备、建模计算到结果展示的完整流程。
学习这些库,关键不在于记住每一个函数,而在于建立“遇到问题知道该找谁”的感觉:看到表格先想 Pandas,看到矩阵先想 NumPy,看到公式先想 SymPy,看到数值求解先想 SciPy,看到出图先想 matplotlib。建议你把这五章当作一份速查手册,比赛前快速翻一遍,做题时遇到卡壳就回来对照。真正上了赛场,能快速想起“这个操作用哪个库、哪个函数”,就已经赢过了大多数对手。祝大家在数学建模中顺利拿奖!
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐


所有评论(0)