awesome_time_series_in_python
awesome_time_series_in_python 是一份精心整理的 Python 时间序列分析工具清单,旨在为开发者提供从数据处理、特征提取到模型预测的全方位资源导航。面对时间序列数据中常见的非均匀采样、多重季节性以及复杂模式识别等挑战,这份清单汇集了如 Arrow 这样人性化的日期处理库,也包含了 Darts、Prophet、Orbit 等支持从传统统计模型到深度学习的前沿预测框架。
它主要解决了用户在海量开源项目中难以快速筛选合适工具的痛点,通过分类整理机器学习、统计分析、金融量化及特定领域(如神经科学、水文学)的专用库,帮助用户高效构建分析流程。其独特亮点在于覆盖面极广且注重实用性,不仅收录了基于 GPU 加速的 Khiva 和用于异常检测的 Matrix Profile 算法,还特别标注了各库是否兼容 scikit-learn 接口或支持贝叶斯推断,极大地降低了技术选型成本。
这份资源非常适合从事数据科学的研究人员、需要落地预测模型的算法工程师,以及对量化交易感兴趣的开发者使用。无论你是希望快速上手进行探索性数据分析,还是致力于构建高精度的生产级预测系统,awesome_time_series_in_python 都能作为可靠的“工具箱地图”,助你轻松找到解决特定问题的最佳代码方案。
使用场景
某电商公司的数据科学团队需要为数千种商品构建精准的销量预测系统,以优化库存管理并降低仓储成本。
没有 awesome_time_series_in_python 时
- 选型迷茫耗时久:面对分散在 GitHub 各处的零散库,团队花费数周调研,仍难以判断哪些库支持多季节性或深度学习模型,导致项目启动严重滞后。
- 重复造轮子:由于缺乏统一指引,工程师手动编写基础的日期处理和数据清洗代码,甚至重复实现了已有的技术指标计算逻辑,开发效率极低。
- 模型对比困难:尝试集成 Prophet、ARIMA 和神经网络时,发现各库接口差异巨大,缺乏统一的评估框架,难以快速验证哪种算法最适合当前业务场景。
- 特殊场景无解:遇到非均匀采样信号或缺失值严重的历史数据时,因不知道 cesium 或 Darts 等专用工具的存在,只能强行使用通用模型,导致预测准确率低下。
使用 awesome_time_series_in_python 后
- 精准快速选型:团队直接查阅清单,根据“多季节性”和“深度学习”标签迅速锁定 Prophet 和 Darts,将技术调研时间从数周压缩至半天。
- 复用成熟方案:直接调用 Arrow 处理复杂时间戳,利用 Pandas TA 一键生成 130+ 技术指标,避免了底层代码的重复开发,让工程师专注于业务逻辑。
- 高效模型迭代:借助清单中推荐的 ETNA 和 Flow Forecast 等具有统一接口的库,团队快速搭建了包含多种模型的自动化对比流水线,显著提升了实验效率。
- 攻克数据难题:针对部分传感器数据的非均匀采样问题,直接采用清单推荐的 cesium 进行特征提取,成功解决了长期困扰的数据质量瓶颈,预测精度提升 20%。
awesome_time_series_in_python 通过提供经过筛选的生态全景图,帮助团队从繁琐的工具搜寻中解放出来,将精力真正聚焦于解决核心业务预测难题。
运行环境要求
未说明(部分列出的库如 khiva-python, Flow Forecast, tsai, ESRNN-GPU 支持 GPU 加速,但无具体型号或显存要求)
未说明

快速开始
使用 Python 处理时间序列数据
Python 生态系统中包含多种可用于处理时间序列数据的软件包。
以下列表并非 exhaustive,如果您认为有遗漏,欢迎编辑此列表(可通过 PR 提交文件更改建议)。
机器学习、统计学、数据分析
库
| 项目名称 | 描述 |
|---|---|
| Arrow | 一种合理且人性化的日期、时间及时间戳的创建、操作、格式化和转换方法 |
| bta-lib | 基于 pandas 的技术分析库,用于算法交易回测和量化分析 |
| cesium | 面向非均匀采样信号的时间序列平台,具备特征提取功能 |
| Darts | 一个库,使得使用从 ARIMA 到深度学习等多种模型进行预测变得非常容易。还支持集成、模型选择等功能。 |
| ETNA | 一个专注于时间序列预测与分析的 Python 库,始终以时间数据结构为核心。包含多种具有统一接口的预测模型,以及探索性数据分析和验证方法。 |
| GENDIS | 基于遗传算法的形状子发现工具 |
| glm-sklearn | 一个与 scikit-learn 兼容的包装器,封装了 statsmodels 中的 GLM 模块 |
| Featuretools | 时间序列特征提取,支持基于其他变量的条件性特征生成,并提供类似关系型数据库的数据容器,兼容 pandas 格式 |
| fecon235 | 金融经济学的计算工具 |
| ffn | 金融函数库 |
| flint | 面向 Apache Spark 的时间序列库 |
| Flow Forecast | Flow Forecast 是一个基于 PyTorch 构建的深度学习框架,用于时间序列预测、分类和异常检测。 |
| hctsa | 基于 Matlab 的特征提取工具,可通过 Python 控制 |
| HMMLearn | 具有 scikit-learn 兼容 API 的隐 Markov 模型 |
| khiva-python | 一个支持 GPU 加速分析的时间序列库,提供特征提取、模式发现等功能。 |
| matrixprofile-ts | Matrix Profile 算法的 Python 实现,可同时进行异常检测和模式(或“motif”)发现。 |
| Nitime | 用于神经科学数据的时间序列分析 |
| Orbit | Orbit 是一个用于贝叶斯时间序列预测与推断的 Python 包。 |
| Pandas TA | 一个易于使用的 Python 3 Pandas 扩展,包含 130 多种技术分析指标。 |
| Pastas | 用于水文数据的时间序列分析 |
| prophet | 适用于具有多周期性且增长呈线性或非线性的时间序列预测工具。 |
| pyDSE | 用于动态系统估计的 ARMA 模型 |
| pyFTS | 基于模糊集规则的时间序列预测模型,支持多步、点预测、区间预测和概率预测。 |
| PyFlux | 经典的时间序列预测模型 |
| pysf | 一个与 scikit-learn 兼容的机器学习库,用于监督/面板预测。 |
| pyramid | R 语言中 auto.arima 方法的 Python 移植版本 |
| pytorch-forecasting | 一个基于 PyTorch 的时间序列预测库,支持多种最先进的网络架构。 |
| pyts | 包含时间序列预处理、变换以及分类技术。 |
| ruptures | 提供用于检测时间序列中变化点的方法,例如信号均值或尺度的变化,以及更复杂的概率分布或频率变化。 |
| seglearn | 将 scikit-learn 的管道概念扩展到序列数据上。 |
| sktime | 一个与 scikit-learn 兼容的库,用于处理时间序列/面板数据的学习,包括时间序列分类/回归以及(监督/面板)预测。 |
| statsmodels | 包含用于经典时间序列模型和假设检验的子模块。 |
| stumpy | 计算时间序列子序列全对相似性搜索的矩阵表征。 |
| TensorFlow-Time-Series-Examples | 使用 tf.contrib.timeseries 进行时间序列预测。 |
| tensorflow_probability.sts | TensorFlow Probability 中的贝叶斯结构化时间序列模型。 |
| timemachines | 提供 prophet 等工具的函数式接口,并结合 Elo 评分系统。 |
| Traces | 一个用于不均匀间隔时间序列分析的库。 |
| ta-lib | 计算金融时间序列的技术指标(Python 封装了 TA-Lib)。 |
| tsai | 在 Pytorch / fastai 中应用最先进的深度学习技术处理时间序列和序列数据。 |
| ta | 计算金融时间序列的技术指标。 |
| TIMEX | 用于构建时间序列预测即服务平台/网站的库,具备完全自动化的数据摄取、预处理、预测及结果可视化流程。 |
| tsflex | 一个用于灵活处理时间序列和提取特征的工具包。 |
| tsfresh | 从时间序列中提取并筛选特征,使监督分类器和回归器能够应用于时间序列数据。 |
| tslearn | 直接用于时间序列的分类器和回归器。 |
| tspreprocess | 对时间序列进行预处理(重采样、去噪等),目前仍在开发中。 |
| tsmoothie | 一个基于向量化方式实现的时间序列平滑与异常值检测的 Python 库。 |
示例或单一模型
| 项目名称 | 描述 |
|---|---|
| ES-RNN 预测算法 | 结合指数平滑与循环神经网络的 M4 竞赛优胜预测方法的 Python 实现,使用 PyTorch 框架 |
| 时间序列分类的深度学习方法 | 一系列常用的时间序列分类深度学习架构集合 |
| 基于 LSTM 的时间序列预测神经网络 | 基于 LSTM 的预测模型 |
| LSTM_tsc | 基于 LSTM 的时间序列分类神经网络 |
| shapelets-python | 基于多层神经网络的 Shapelet 分类器 |
| M4 竞赛 | 统计与机器学习预测方法的集合 |
| UCR 时间序列分类深度学习基准 | 用于最先进时间序列分类的全卷积神经网络 |
| WTTE-RNN | 基于 RNN 的威布尔密度估计进行事件发生时间预测 |
时间序列数据容器
| 项目名称 | 描述 |
|---|---|
| Featuretools | 时间序列特征提取工具,支持与其他变量条件关联,并提供类似关系型数据库的数据容器,兼容 Pandas |
| pysf | 一个与 scikit-learn 兼容的监督式预测库 |
| xarray | 带标签的多维数据结构,前提是它们共享相同的时间索引 |
| xpandas | 用于存储任意类型异构表格数据(包括时间序列)的带标签一维和二维数据容器,并将特征提取与转换建模封装在与 scikit-learn 兼容的转换器接口中,目前仍在开发中。 |
数据集
| 项目名称 | 描述 |
|---|---|
| awesome-public-datasets | 这个庞大的公共数据集列表也包含时间序列数据集部分 |
| ecmwf_models | 气候再分析数据的读取与转换工具 |
| M4 竞赛 | 针对 10 万个时间序列的预测竞赛 |
| pandas-datareader | 从不同来源(如 Yahoo、Google、Quandl)获取金融数据 |
| Timeseriesclassification.com | 一个广泛的时间序列分类数据集资源库 |
数据库、框架
| 项目名称 | 描述 |
|---|---|
| artic | 高性能的时间序列及逐笔交易数据存储系统 |
| automl_service | 完全自动化的时间序列分类流水线,已部署为 Web 服务 |
| cesium | 提供针对非均匀采样信号的特征提取功能的时间序列平台 |
| thunder | 基于 Spark 的 Python 可扩展图像与时间序列数据分析工具 |
| whisper | 基于文件的时间序列数据库格式 |
免费课程
| 项目名称 | 描述 |
|---|---|
| 时间序列预测 | Udacity 提供的免费课程,教授如何在商业环境中构建和应用时间序列分析与预测 |
讨论
我们希望推动 Python 时间序列社区中所用格式的统一,请参阅概念页面
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备