2. Python 基础速通(一):Python 环境搭建(Anaconda)、Jupyter Notebook 使用、变量与数据类型、列表与字典实操

说实话,很多新手在学 Python 的第一步就栽了跟头——不是代码写不对,而是环境装不好。我见过太多人花了一整天装 Python,最后连个 Hello World 都跑不出来。所以这一章,咱们先把地基打牢。

本章核心目标:30 分钟内搭建好可用的 Python 量化环境,并上手操作变量、列表和字典。

2.1 为什么选择 Anaconda?

Python 本身只是一个解释器,但做量化你需要一堆库:NumPy、Pandas、Matplotlib……一个个手动装?太累了。Anaconda 把这些打包好了,还自带包管理器 conda,省心很多。

我个人习惯用 Anaconda 还有一个原因——它内置了 Jupyter Notebook,这对量化研究来说太方便了。你想想看,写一段代码、看一段结果、再改改参数,这种交互式体验比写脚本再运行爽多了。

对比项 原生 Python Anaconda
安装难度 需手动配置 PATH 一键安装
包管理 pip,依赖冲突常见 conda,环境隔离方便
预装库 无 150+ 科学计算库
IDE 支持 需额外安装 自带 Jupyter、Spyder

小提示:下载 Anaconda 时选 Python 3.x 版本(目前推荐 3.9+)。别选 Python 2.7,那个已经退休了。

2.2 安装与验证

安装过程很简单,一路默认就行。但有一个坑——安装界面有个「Add Anaconda to my PATH environment variable」,我建议勾上。虽然官方说不推荐,但咱们做量化经常要在终端里调 conda 命令,勾上省事。

装完后打开终端(Windows 用 Anaconda Prompt),输入:

conda --version
python --version

如果看到版本号,说明装好了。我曾经帮一个学员远程调试,他输完命令没反应——后来发现是终端没重启。嗯,这种小细节容易忽略。

2.3 Jupyter Notebook 上手

Jupyter Notebook 是量化研究的标配。为什么?因为它把代码、图表、文字说明都放在一个文件里,特别适合做探索性分析。

启动方式:在终端输入 jupyter notebook,浏览器会自动打开一个页面。点击右上角「New」→「Python 3」就能新建一个笔记本。

界面很简单:上面是菜单栏,下面是单元格。每个单元格可以写代码,也可以写 Markdown 说明。按 Shift + Enter 运行当前单元格并跳到下一个。

注意:Jupyter 的变量是全局共享的。如果你在一个单元格里定义了变量 x = 10,后面的单元格都能用。但如果你把单元格顺序打乱了再重新运行,很容易出问题。我的习惯是:每次重新分析时,点菜单栏「Kernel」→「Restart & Run All」。

2.4 变量与数据类型

Python 的变量不需要声明类型,直接赋值就行。这很灵活,但也容易踩坑。

# 基本数据类型
price = 100.5        # 浮点数
shares = 200         # 整数
symbol = "AAPL"      # 字符串
is_buy = True        # 布尔值

# 查看类型
print(type(price))   # <class 'float'>
print(type(shares))  # <class 'int'>

量化里最常用的是浮点数和字符串。价格、收益率都是浮点数;股票代码、日期都是字符串。

有一个细节要注意:Python 的浮点数精度问题。比如 0.1 + 0.2 的结果不是精确的 0.3,而是 0.30000000000000004。做量化计算时,这种误差累积起来会出问题。我一般用 round() 或者 Decimal 来处理。

数据类型 示例 量化场景
int 100, -5 成交量、持仓量
float 3.14, -0.05 价格、收益率
str "AAPL", "2024-01-01" 股票代码、日期
bool True, False 买卖信号

2.5 列表实操

列表是 Python 里最常用的数据结构之一。说白了,就是一个有序的容器,能放各种类型的数据。

# 创建列表
prices = [100.5, 101.2, 99.8, 102.1, 100.9]

# 常用操作
print(len(prices))       # 长度:5
print(prices[0])         # 第一个元素:100.5
print(prices[-1])        # 最后一个元素:100.9
print(prices[1:3])       # 切片:[101.2, 99.8]

# 添加元素
prices.append(103.0)     # 末尾添加
prices.insert(0, 99.5)   # 指定位置插入

# 删除元素
prices.remove(99.8)      # 删除指定值
last = prices.pop()      # 弹出最后一个

# 列表推导式(量化里超常用)
squared = [x**2 for x in prices]

列表推导式我几乎每天用。比如计算收益率:returns = [(prices[i] - prices[i-1]) / prices[i-1] for i in range(1, len(prices))]。一行代码搞定,比写循环清爽多了。

避坑指南:列表的切片是左闭右开的。prices[1:3] 取的是索引 1 和 2,不包括 3。我曾经在回测里因为这个问题算错了收益率,查了半天才发现是切片边界搞错了。

2.6 字典实操

字典是键值对的集合,特别适合存股票信息。比如把股票代码作为键,价格作为值。

# 创建字典
stock_prices = {
    "AAPL": 150.25,
    "GOOGL": 2750.80,
    "MSFT": 300.45
}

# 访问值
print(stock_prices["AAPL"])    # 150.25
print(stock_prices.get("TSLA", "Not Found"))  # 安全访问

# 修改和添加
stock_prices["AAPL"] = 152.00  # 修改
stock_prices["TSLA"] = 700.00  # 新增

# 遍历
for symbol, price in stock_prices.items():
    print(f"{symbol}: ${price}")

# 字典推导式
squared_prices = {k: v**2 for k, v in stock_prices.items()}

字典在量化里还有一个妙用——做缓存。比如计算某个指标时,把结果存到字典里,下次直接取,不用重复计算。这在处理大量数据时能省不少时间。

2.7 本章知识体系

下面这张图把本章的核心知识点串起来了。你可以把它当作一张地图,学完后再回来看一眼,思路会更清晰。

第2章:Python基础速通(一)知识体系 Python量化基础 环境搭建 Jupyter Notebook 变量与数据类型 列表与字典 Anaconda安装 conda命令 启动与界面 单元格操作 int/float/str/bool 类型转换 列表操作 字典操作 💡 核心:先搭环境 → 再学语法 → 最后动手实操 列表和字典是量化数据处理的基础,务必熟练掌握

2.8 动手练一练

光看不动手,等于白学。我建议你打开 Jupyter Notebook,跟着下面的练习敲一遍:

  1. 创建一个列表,包含 5 只股票代码:["AAPL", "GOOGL", "MSFT", "AMZN", "TSLA"]
  2. 创建一个字典,把每只股票的最新价格存进去(价格自己随便填)
  3. 用列表推导式计算每只股票价格翻倍后的值
  4. 用字典推导式创建一个新字典,键是股票代码,值是价格加 10%
  5. 把结果打印出来,看看对不对

我的建议:刚开始别追求完美,代码能跑就行。写错了就改,改完再跑。量化研究本身就是不断试错的过程,代码写多了自然就熟了。

好了,这一章的内容就到这里。环境搭好了,基础语法也过了一遍,接下来就可以开始真正接触量化数据处理了。