coreforecast
常用预测例程的快速实现
动机
在 Nixtla,我们实现了多个库来处理时间序列数据。我们经常需要对所有序列应用一些变换,这即使是对于执行某种缩放这样的简单操作,也可能非常耗时。
我们使用了 numba 来加速我们昂贵的计算,但这带来了其他问题,例如冷启动和更多依赖(LLVM)。这就是我们开发这个库的原因,它用 C++ 实现了几个运算符来转换时间序列数据(或可被视为独立组的其他类型数据),并且可以使用多线程来获得最佳性能。
您可能不需要直接使用这个库,而是使用我们更高级别的库,例如 mlforecast,它将在底层使用这个库。如果您有兴趣直接使用这个库(仅依赖 numpy),则应继续阅读。
安装
PyPI
conda-forge
最小示例
基础数据结构是“分组数组”,它包含两个 numpy 1d 数组
- data: 序列的值。
- indptr: 序列边界,使得
data[indptr[i] : indptr[i + 1]]
返回第i
个序列。例如,如果您有两个大小分别为 5 和 10 的序列,则 indptr 将是 [0, 5, 15]。
拥有此结构后,您可以运行任何提供的变换,例如
单数组函数
我们还实现了一些适用于单个数组的函数,您可以参考以下页面