跳转至

所有文章

使用 papermill 运行 Jupyter Notebook

当执行两个具有前后依赖关系的 Jupyter Notebook 时,我们需要等待第一个 Notebook 运行完成,再开始运行第二个 Notebook。

一个笨拙的方法是,先预估好第一个 Notebook 运行需要的时间(例如 1 小时),然后在第二个 Notebook 的第一个 Cell 添加:

Python
import time

time.sleep(1 * 60 * 60)

这将使第二个 Notebook 运行 1 小时后,再运行后续的 Cell。

上述方法需要事先预估第一个 Notebook 运行需要的时间,预估时间过短会导致第二个 Notebook 提前运行,预估时间过长又会导致第二个 Notebook 浪费很多时间在 time.sleep() 上。

本文介绍了如何使用 papermill 运行 Jupyter Notebook,实现控制先后运行两个 Notebook 的功能。

screen-capture

pypika 中自定义 SQL 函数

pypika 是一个在 Python 中构建 SQL 语句的工具。这篇文章提供了一个很棒的入门教程,介绍了许多 pypika 的基本用法。

本文以 ClickHouse 中的 quantileExact 函数为例,介绍如何在 pypika 中自定义函数,尤其是自定义字符串拼接方式的实现方法。

image-20240711001853859

因子半衰期

对于一个时间序列,我们可以构建一个逐渐衰减的时间序列模型来估计其半衰期。本文介绍了两个模型,用于估计一个时间序列的半衰期。

在量化研究中,了解各个因子的衰减情况,可以更有效地动态分配因子权重,以适应市场变化。

image-20240612194448624

Python 类型检查工具 beartype

Python 代码中的类型提示并不是需要强制满足的。如果我们希望代码使用者严格遵循类型提示,在类型不符时抛出错误,可以使用 beartype 进行类型检查。