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

anhgbhbe  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(314)

我正在尝试插值三维数据。我的数据是:https://jumpshare.com/s/Xeezpl0LpdcqtiQayoa5
但是我遇到的问题是interpolate.bisplrep返回nan(tck变量的第二个索引)。我的代码是:

  1. import numpy as np
  2. import pandas as pd
  3. import numpy.ma as ma
  4. from scipy.interpolate import griddata,bisplrep,bisplev
  5. vol = pd.read_csv('data1.csv',index_col='dte')
  6. T=np.array(vol.index)
  7. K=np.array(vol.columns)
  8. valid_vol=ma.masked_invalid(vol).T
  9. Ti=np.linspace(float(T.min()),float(T.max()),len(T))
  10. Ki=np.linspace(float(K.min()),float(K.max()),len(K))
  11. Ti,Ki = np.meshgrid(Ti,Ki)
  12. T,K = np.meshgrid(T,K)
  13. valid_Ti = Ti[~valid_vol.mask]
  14. valid_Ki = Ki[~valid_vol.mask]
  15. valid_vol = valid_vol[~valid_vol.mask]
  16. iv_interpol=griddata((valid_Ti,valid_Ki), valid_vol, (Ti, Ki),method='linear')
  17. tck = bisplrep(Ti, Ki, iv_interpol)
  18. T_new, K_new = np.mgrid[Ti.min():T.max():80j, Ki.min():Ki.max():80j]
  19. znew = bisplev(T_new[:,0], K_new[0,:], tck)

字符串
我需要znew是一个函数,我可以插入值znew(a,b),然后得到一个输出。

5w9g7ksd

5w9g7ksd1#

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

相关问题