为什么scipy.interpolate.bisplrep返回nan值?

anhgbhbe  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(105)

我正在尝试插值三维数据。我的数据是: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),然后得到一个输出。

5w9g7ksd

5w9g7ksd1#

您正在阅读一个缺少数据的数据文件。此缺少的数据将被视为NaN。然后您试图对其中包含NaN的数据进行样条。(尝试打印出vol)。
为什么你的文件缺少数据?你希望这些字段用一些默认字段填充吗?

相关问题