我正在尝试编写一个 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