2. 仿真环境搭建:Python环境配置、NumPy/SciPy安装、Matplotlib可视化工具、随机数种子设置
说实话,做算法仿真这件事,环境搭得好不好,直接决定了你后面是「愉快地调参」还是「痛苦地修bug」。我见过太多同学,代码写得挺漂亮,结果一跑就报错,最后发现是NumPy版本不对。嗯,咱们先把地基打牢。
2.1 Python环境配置——别小看这一步
我个人习惯用 Anaconda 来管理Python环境。为什么?因为它自带了一堆科学计算库,省得你一个一个去pip。你想想看,要是每次换项目都得重新装一遍NumPy、SciPy、Matplotlib,那得多烦人。
安装步骤其实很简单:
- 去Anaconda官网下载对应系统的安装包
- 一路默认安装,记得勾选「Add Anaconda to my PATH environment variable」
- 打开终端或Anaconda Prompt,输入
python --version确认安装成功
如果你喜欢轻量级方案,也可以用 venv 或 pipenv。但我还是那句话——做仿真验证,Anaconda最省心。
2.2 NumPy/SciPy安装——核心计算引擎
NumPy和SciPy,说白了就是Python科学计算的左膀右臂。NumPy管数组运算、矩阵操作,SciPy管优化、插值、信号处理。做决策算法仿真,这两个库几乎天天用。
安装命令就一行:
pip install numpy scipy
如果你用的是Anaconda,它们已经预装了。验证一下:
import numpy as np
import scipy as sp
print(np.__version__)
print(sp.__version__)
我曾经遇到过一个坑:NumPy 1.24 之后,np.bool 被移除了,改用 bool。老代码里如果写了 np.bool,直接报错。所以,我建议你固定版本:
pip install numpy==1.23.5 scipy==1.9.3
2.3 Matplotlib可视化工具——让数据说话
做仿真验证,光看数字可不行。你得把结果画出来,才能一眼看出算法稳不稳定。Matplotlib就是干这个的。
安装:
pip install matplotlib
我常用的几个配置,分享给你:
import matplotlib.pyplot as plt
# 设置中文字体,不然图上全是框框
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 画个简单的折线图
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]
plt.plot(x, y, marker='o')
plt.title('决策算法收敛曲线')
plt.xlabel('迭代次数')
plt.ylabel('误差值')
plt.grid(True)
plt.show()
%matplotlib inline,这样图会直接显示在单元格下方,不用弹窗。
我个人习惯把画图封装成一个函数,比如 plot_convergence()、plot_comparison(),这样每次仿真完直接调用,省得重复写代码。
2.4 随机数种子设置——让仿真可复现
这一点太重要了。做决策算法仿真,很多时候会用到随机采样——比如初始化种群、随机扰动、蒙特卡洛模拟。如果不设随机数种子,每次跑出来的结果都不一样,你怎么验证算法稳不稳定?
设置方法很简单:
import numpy as np
# 设置随机数种子
np.random.seed(42)
# 生成随机数
rand_vals = np.random.rand(5)
print(rand_vals)
为什么选42?其实随便什么整数都行,但42是《银河系漫游指南》里的梗,很多程序员都爱用。我个人习惯用 2024 这种年份,好记。
我曾经犯过一个错:在多个模块里分别调了 np.random.seed(),结果后面的模块把前面的种子覆盖了,整个仿真结果对不上。后来我统一在仿真入口设一次种子,所有模块共用这个随机状态。
2.5 知识体系总览
下面这张图,是我自己总结的仿真环境搭建核心逻辑。你一看就明白:
2.6 避坑指南
最后,我把自己踩过的坑总结一下,你遇到了直接对照:
| 常见问题 | 原因 | 解决办法 |
|---|---|---|
| ImportError: No module named 'numpy' | 没装或者装错环境了 | 检查当前Python环境,用 pip list 查看已安装包 |
| Matplotlib图上中文显示为方框 | 缺少中文字体配置 | 设置 plt.rcParams['font.sans-serif'] |
| 每次运行结果不一样 | 没设随机数种子 | 在代码开头加 np.random.seed(42) |
| SciPy函数报错,提示版本问题 | NumPy和SciPy版本不匹配 | 固定版本安装,比如 numpy==1.23.5 scipy==1.9.3 |
好了,环境搭好之后,你就可以放心地跑仿真了。记住一句话:环境稳定,结果才可信。下一节咱们就开始写第一个仿真脚本,到时候你就知道今天这些配置有多重要了。
requirements.txt 文件里,以后换机器直接 pip install -r requirements.txt,省时省力。
可可精品资料库