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

问题描述 投票:0回答:1

我正在尝试插入 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) 然后获得输出。

python optimization scipy interpolation
1个回答
0
投票

您正在读取缺少数据的数据文件。该缺失数据被视为 NaN。然后,您尝试对包含 NaN 的数据进行样条分析。 (尝试打印出来

vol
)。

为什么您的文件缺少数据?您是否希望这些字段填充一些默认字段?

© www.soinside.com 2019 - 2024. All rights reserved.