0

我正在尝试编写一个 cuDF-UDF,它计算与 cuDF 系列的 lag==1 的 pearson 自相关。

我已经定义了以下 UDF:

import cupy as cp
def cuda_corr(x):
    xx=x[:-1]
    yy=x[1:]
    coef=cp.corrcoef(xx,y=yy, rowvar=False)
    return coef[0,1]

然后采取一系列并将滚动窗口应用于函数。

cdf=cudf.from_pandas(df['ex_col'])
cdf.rolling(window=3, min_periods=3, center=False).apply(cuda_corr)

然后我面临错误:

LoweringError: Failed in nopython mode pipeline (step: nopython mode backend)
Unknown attribute 'corrcoef' of type Module(<module 'cupy' from '/home/idanre1/miniconda3/envs/rapids-21.10/lib/python3.8/site-packages/cupy/__init__.py'>)

以下熊猫代码正在运行:

autocorr_window = 3
lag=1
x=df['ex_col']
acorr=x.rolling(
                       window=autocorr_window, 
                       min_periods=autocorr_window,
                       center=False).apply(lambda x: x.autocorr(lag=lag), raw=False)

我在 python 3.8.12 上使用 rapids-21.10

4

0 回答 0