3、Python环境搭建:Anaconda安装、Jupyter Notebook配置、NetworkX库安装、Matplotlib安装
说实话,很多初学者一上来就急着写代码,结果环境没配好,折腾半天连个图都画不出来。我见过太多这样的案例了。所以这一章,咱们先把地基打牢。
金融网络分析,说白了就是拿Python去处理图数据。你需要三个核心工具:Anaconda(管理环境)、Jupyter Notebook(写代码)、NetworkX + Matplotlib(画网络图)。下面我一步步带你搞定。
3.1 为什么选 Anaconda?
你想想看,如果手动装 Python,再一个个装 NumPy、Pandas、Scipy……光依赖冲突就能让你崩溃。Anaconda 把这些打包好了,一键安装,省心省力。
我个人习惯用 Anaconda 来管理多个 Python 环境。比如一个环境做金融网络分析,另一个做机器学习,互不干扰。这在项目里特别实用——我曾经因为环境混乱,导致一个跑了两天的模型突然报错,后来才发现是某个库版本被覆盖了。从那以后,我每个项目都建独立环境。
核心优势:
- 自带 Python 解释器 + 150+ 常用科学计算库
- 内置 conda 包管理器,解决依赖问题
- 支持创建隔离环境,避免版本冲突
3.2 Anaconda 安装步骤
嗯,这里要注意:一定要去官网下载(anaconda.com),别去第三方网站。我见过有人从百度网盘下载,结果装了个带广告的版本。
- 选择版本:建议 Python 3.9 或 3.10 版本(2024年推荐 2023.09 以上版本)
- 安装路径:不要有中文和空格。比如
D:\Anaconda3 - 关键选项:安装时勾选「Add Anaconda3 to my PATH environment variable」
- 验证安装:打开终端(cmd),输入
conda --version
小技巧:安装完成后,建议先更新 conda 本身:conda update conda。我每次装新机器都会先跑这条命令,避免后续安装包时出现版本不匹配。
3.3 Jupyter Notebook 配置
Jupyter Notebook 是交互式编程的神器。你写一段代码,立刻看到结果,特别适合做数据分析探索。
安装 Anaconda 后,Jupyter 已经自带了。你只需要在终端输入:
jupyter notebook
浏览器会自动打开一个页面。但默认配置有几个坑,我帮你踩过了:
避坑指南:
- 我曾经因为没改工作目录,每次打开都要手动切换到项目文件夹。建议修改默认路径:
jupyter notebook --generate-config,然后找到c.NotebookApp.notebook_dir设置成你的工作目录。 - 如果启动报错,试试
conda install jupyter重新安装。 - 建议安装
jupyter_contrib_nbextensions,提供代码折叠、目录生成等插件,效率翻倍。
3.4 安装 NetworkX 库
NetworkX 是金融网络分析的核心库。它提供了图结构、节点、边的操作,以及各种网络分析算法。
安装很简单,在终端输入:
conda install networkx
或者用 pip:
pip install networkx
我个人推荐用 conda 安装,因为它会自动处理依赖。比如 NetworkX 依赖 NumPy 和 SciPy,conda 会一并装好。
验证是否安装成功:
python -c "import networkx as nx; print(nx.__version__)"
如果输出版本号(比如 3.2.1),就说明装好了。
金融网络分析常用功能:
- 创建有向图/无向图:
nx.Graph()或nx.DiGraph() - 添加节点和边:
G.add_edge('A', 'B', weight=0.5) - 计算中心性指标:
nx.degree_centrality(G) - 社区发现:
nx.community.greedy_modularity_communities(G)
3.5 安装 Matplotlib
光有 NetworkX 还不够,你得把网络图画出来。Matplotlib 就是干这个的。
安装命令:
conda install matplotlib
验证:
python -c "import matplotlib.pyplot as plt; print('OK')"
这里有个小坑:我曾经在 Jupyter 里画图,发现中文显示成方框。这是因为 Matplotlib 默认字体不支持中文。解决方案:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
建议把这行代码放在 Jupyter Notebook 的开头,一劳永逸。
3.6 快速测试:画一个简单的网络图
装完所有东西,我们来测试一下。在 Jupyter Notebook 里输入:
import networkx as nx
import matplotlib.pyplot as plt
# 创建一个简单的金融网络
G = nx.Graph()
G.add_edge('银行A', '银行B', weight=0.8)
G.add_edge('银行B', '银行C', weight=0.6)
G.add_edge('银行A', '银行C', weight=0.4)
# 画图
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, node_color='lightblue',
node_size=1500, font_size=12, font_weight='bold')
edge_labels = nx.get_edge_attributes(G, 'weight')
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)
plt.title('银行间借贷关系网络')
plt.show()
如果能看到三个节点和它们之间的连线,恭喜你——环境搭建成功了!
我的经验:刚开始学的时候,别追求复杂的图。先画 5 个节点以内的网络,理解节点、边、权重的概念。等熟悉了,再处理几百个节点的真实金融网络。
3.7 环境管理小贴士
最后,分享几个我常用的 conda 命令:
| 命令 | 作用 |
|---|---|
conda create -n fin_net python=3.9 |
创建名为 fin_net 的独立环境 |
conda activate fin_net |
激活该环境 |
conda deactivate |
退出当前环境 |
conda list |
查看已安装的包 |
conda remove -n fin_net --all |
删除整个环境 |
说白了,环境管理就是给你的每个项目一个「干净的房间」。别让它们互相串门,否则出了问题你都不知道找谁。
好了,环境搭好了,下一章咱们就开始真正玩转金融网络数据了。