转换熊猫滚动将功能应用于 numba?

时间:2021-03-05 17:47:43

标签: python pandas numba

我有一个数据框,我目前正在使用 scipy.stats.kurtosis 函数在滚动窗口的基础上获取峰度。我知道有一个性能更好的内置 Pandas 解决方案,pandas.kurt;然而,我 found 对于 Python 3.8 之前的 Python 版本来说,这是一个相当错误且充满数字不一致的问题;此外,我很好奇是否有可能以任何方式将 pandas.DataFrame.rolling.apply 构造转换为 numpy 以便能够利用 numba(因为 {{1} } 在支持的库方面非常有限,numba 不在其中)。我当前的工作示例如下:

pandas

如果到目前为止我对 df.rolling(20, min_periods=3).apply(lambda x: kurtosis(x, bias=False)) 的所有理解都正确,我将需要一个可以 jit 的单独函数,因此我创建了一个 numba 函数:

scipy_kurtosis

现在,如果可能的话,下一步应该是转换 @nb.njit(nogil=True) def scipy_kurtosis(x): return kurtosis(x, bias=False) 构造,以便 df.rolling(20, min_periods=3) 和 jitted apply() 函数不接收要操作的 pandas 对象.这是可能的并且是一个合理的步骤吗?

0 个答案:

没有答案
相关问题