jmb*_*orr 3 scipy linear-interpolation
scipy.interpolate.interp1d(v0.17.0)中的文档为可选的fill_value参数说明以下内容:
fill_value:...如果是两元素元组,则第一个元素用作x_new <x [0]的填充值,第二个元素用于x_new x [-1].
因此,我在此代码中传递了一个两元素的tupe:
N=100
x=numpy.arange(N)
y=x*x
interpolator=interp1d(x,y,kind='linear',bounds_error=False,fill_value=(x[0],x[-1]))
r=np.arange(1,70)
interpolator(np.arange(1,70))
Run Code Online (Sandbox Code Playgroud)
但它抛出ValueError:
ValueError: shape mismatch: value array of shape (2,) could not be broadcast to indexing result of shape (0,1)
Run Code Online (Sandbox Code Playgroud)
谁能指点我,我在这里做错了什么?在此先感谢您的帮助.
这是一个已在当前开发版本中修复的错误:
>>> N = 100
>>> x = np.arange(N)
>>> y = x**2
>>> from scipy.interpolate import interp1d
>>> iii = interp1d(x, y, fill_value=(-10, 10), bounds_error=False)
>>> iii(-1)
array(-10.0)
>>> iii(101)
array(10.0)
>>> scipy.__version__
'0.18.0.dev0+8b07439'
Run Code Online (Sandbox Code Playgroud)
话虽这么说,如果你想要的是一个带左侧和右侧填充值的线性插值,你可以np.interp
直接使用.
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |