3. Python 金融分析环境搭建
做量化投资,说白了就是跟数据打交道。你想想看,没有趁手的工具,再好的策略也跑不起来。这一章我就带你把整个环境搭好,从 Anaconda 到深度学习框架,一步到位。
我记得刚入行那会儿,光装个 TensorFlow 就折腾了一整天,版本冲突、依赖缺失,搞得我头大。后来学乖了,用 Anaconda 管理环境,再也没出过幺蛾子。嗯,咱们就从它开始。
3.1 Anaconda 安装与虚拟环境管理
Anaconda 是什么?它就是一个 Python 发行版,把 NumPy、Pandas 这些常用库打包好了,还自带包管理器 conda。我个人习惯用 Miniconda,轻量,只装核心组件,需要什么再自己加。
安装步骤很简单:
- 去官网下载对应系统的安装包(Python 3.9+ 版本)
- 一路默认安装,记得勾选「Add to PATH」
- 打开终端,输入
conda --version验证
接下来创建虚拟环境:
# 创建环境,指定 Python 版本
conda create -n quant python=3.9
# 激活环境
conda activate quant
# 退出环境
conda deactivate
# 查看已有环境
conda env list
3.2 Jupyter Notebook 配置与使用
Jupyter Notebook 是量化研究的标配。为什么?因为它支持交互式编程,写一段代码,立刻看到结果,还能加图表和文字说明。我写策略原型基本都在 Notebook 里完成。
安装和配置:
# 在 quant 环境中安装
conda install jupyter notebook
# 启动
jupyter notebook
# 设置密码(远程访问时用)
jupyter notebook password
我个人习惯装几个扩展插件,提升效率:
# 安装 jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
常用的扩展有:
- Table of Contents:自动生成目录,长 Notebook 必备
- Collapsible Headings:折叠标题,让 Notebook 更清爽
- ExecuteTime:显示每个单元格的运行时间,方便优化
H 键可以查看所有快捷键。我最常用的是 Shift+Enter 运行当前单元格并跳到下一个,B 在下方插入新单元格。你试试看,效率翻倍。
3.3 核心库安装:Pandas、NumPy、Matplotlib
这三个库是量化分析的基石。NumPy 做数值计算,Pandas 处理表格数据,Matplotlib 画图。我几乎每天都要跟它们打交道。
安装命令:
conda install numpy pandas matplotlib
# 验证版本
python -c "import numpy; print(numpy.__version__)"
python -c "import pandas; print(pandas.__version__)"
python -c "import matplotlib; print(matplotlib.__version__)"
简单验证一下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 生成随机数据
data = np.random.randn(100)
series = pd.Series(data)
# 画个折线图
plt.plot(series)
plt.title('Random Walk')
plt.show()
如果能看到一张折线图,说明环境没问题。
read_csv 和 to_datetime 用得最多。记得把日期列设为索引,后面做时间序列分析会方便很多。比如:df.set_index('date', inplace=True)。
3.4 Scikit-learn 安装与验证
Scikit-learn 是机器学习的主力库。分类、回归、聚类、降维,它都支持。我最早接触机器学习就是从它开始的,API 设计得很友好。
安装:
conda install scikit-learn
# 验证
python -c "import sklearn; print(sklearn.__version__)"
快速测试:
from sklearn.linear_model import LinearRegression
import numpy as np
# 生成数据
X = np.array([[1], [2], [3], [4]])
y = np.array([2, 4, 6, 8])
# 训练模型
model = LinearRegression()
model.fit(X, y)
# 预测
print(model.predict([[5]])) # 应该输出 10.0
[[1], [2]] 这种形式。我刚开始经常踩这个坑,一维数组传进去直接报错。
3.5 深度学习框架:TensorFlow 与 PyTorch
做量化投资,深度学习越来越常用。LSTM 预测股价、Transformer 做因子挖掘,都离不开这两个框架。我个人偏好 PyTorch,觉得它的动态图机制更灵活,调试起来方便。但 TensorFlow 在工业界部署更有优势。
安装(根据你的 CUDA 版本选择 CPU 或 GPU 版):
# PyTorch(CPU 版)
conda install pytorch torchvision torchaudio cpuonly -c pytorch
# PyTorch(GPU 版,CUDA 11.8)
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
# TensorFlow(CPU 版)
conda install tensorflow
# TensorFlow(GPU 版)
conda install tensorflow-gpu
验证:
# PyTorch 验证
import torch
print(torch.__version__)
print(torch.cuda.is_available()) # GPU 可用返回 True
# TensorFlow 验证
import tensorflow as tf
print(tf.__version__)
print(tf.config.list_physical_devices('GPU')) # GPU 可用会显示设备信息
3.6 环境验证与常见问题
全部装完后,我习惯写一个完整的验证脚本,确保所有库都能正常导入:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
import torch
import tensorflow as tf
print("NumPy:", np.__version__)
print("Pandas:", pd.__version__)
print("Matplotlib:", plt.__version__)
print("Scikit-learn:", sklearn.__version__)
print("PyTorch:", torch.__version__)
print("TensorFlow:", tf.__version__)
print("\n所有库导入成功!")
常见问题及解决方法:
| 问题 | 原因 | 解决方法 |
|---|---|---|
| ImportError: No module named 'xxx' | 包没装或装错环境 | 检查当前环境:conda activate quant,重新安装 |
| TensorFlow 找不到 GPU | CUDA 版本不匹配 | 用 conda install cudatoolkit=11.8 指定版本 |
| PyTorch 安装后 import 报错 | 依赖冲突 | 创建新环境,单独安装 PyTorch |
| Jupyter 内核找不到包 | Notebook 用的不是当前环境 | 安装 ipykernel:conda install ipykernel,然后选择内核 |
3.7 知识体系总览
下面这张图把本章的知识结构梳理了一遍。你可以把它当作一个检查清单,看看自己有没有遗漏。
这张图从 Anaconda 基础环境出发,分三条线展开:虚拟环境管理、Jupyter Notebook、包管理。然后依次安装核心库、机器学习库、深度学习框架,最后统一验证。每一步都踩实了,后面写策略才不会卡在环境问题上。