pandas scipy interp2d很慢

7qhs6swi  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(180)

我正在使用scipy.interpolate.interp2d函数,它返回了预期的结果,但是有毫秒级的延迟。有什么方法可以加速它吗?


参数:s = 0.001和t = 4
vols =来自url https://s3.eu-west-2.amazonaws.com/alquadri.com/uploads/vols_data.txt的数据
下面是我正在使用的函数。

from scipy.interpolate import interp2d
import numpy as np  
import pandas as pd
    
def InterpVols2d(vols, s, t):
    df = pd.DataFrame(vols, columns=['x','y','z'])
    VolsPivotTable = df.pivot_table(values='z', index='y', columns='x').ffill().bfill()          ## Forward then back fill
    # print(VolsPivotTable)

    ### Get the Matrix from the volumes data
    CapFloorVolMatrixNP = np.array(vols)
    x = np.unique(CapFloorVolMatrixNP[:,0])
    y = np.unique(CapFloorVolMatrixNP[:,1])
    Z = []
    for counter, item in enumerate(y):
        Z.append(VolsPivotTable.iloc[counter,:].tolist())
    z = np.array(Z)

    ### Interp2d 
    interp2dData = interp2d(x, y, z, kind='linear')(s,t)[0]  #fill_value=np.nan
    return interp2dData
fdbelqdn

fdbelqdn1#

不。它是在构建时构建样条曲线拟合,这需要时间。
interpn/RGI的启动速度更快。

相关问题