我正在尝试插入 3-d 数据。我拥有的数据是:https://jumpshare.com/s/Xeezpl0LpdcqtiQayoa5
但我遇到的问题是
interpolate.bisplrep
返回 nan (tck
变量的第二个索引)。
我的代码是:
import numpy as np
import pandas as pd
import numpy.ma as ma
from scipy.interpolate import griddata,bisplrep,bisplev
vol = pd.read_csv('data1.csv',index_col='dte')
T=np.array(vol.index)
K=np.array(vol.columns)
valid_vol=ma.masked_invalid(vol).T
Ti=np.linspace(float(T.min()),float(T.max()),len(T))
Ki=np.linspace(float(K.min()),float(K.max()),len(K))
Ti,Ki = np.meshgrid(Ti,Ki)
T,K = np.meshgrid(T,K)
valid_Ti = Ti[~valid_vol.mask]
valid_Ki = Ki[~valid_vol.mask]
valid_vol = valid_vol[~valid_vol.mask]
iv_interpol=griddata((valid_Ti,valid_Ki), valid_vol, (Ti, Ki),method='linear')
tck = bisplrep(Ti, Ki, iv_interpol)
T_new, K_new = np.mgrid[Ti.min():T.max():80j, Ki.min():Ki.max():80j]
znew = bisplev(T_new[:,0], K_new[0,:], tck)
我需要 znew 成为一个函数,我可以插入值 znew(a,b) 然后获得输出。
您正在读取缺少数据的数据文件。该缺失数据被视为 NaN。然后,您尝试对包含 NaN 的数据进行样条分析。 (尝试打印出来
vol
)。
为什么您的文件缺少数据?您是否希望这些字段填充一些默认字段?