gpt4 book ai didi

scipy - 将元组传递给 scipy.interpolate.interp1d 中的 fill_value 导致 ValueError

转载 作者:行者123 更新时间:2023-12-01 11:26:18 25 4
gpt4 key购买 nike

docs在 scipy.interpolate.interp1d (v0.17.0) 中,对可选的 fill_value 参数说以下内容:

fill_value : ... If a two-element tuple, then the first element is used as a fill value for x_new < x[0] and the second element is used for 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))

但它会抛出 ValueError:
ValueError: shape mismatch: value array of shape (2,) could not be broadcast to indexing result of shape (0,1)

谁能指出我在这里做错了什么?
在此先感谢您的帮助。

最佳答案

这是当前开发版本中已修复的错误:

>>> 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'

话虽如此,如果您想要的只是具有左侧和右侧填充值的线性插值,您可以使用 np.interp
直接地。

关于scipy - 将元组传递给 scipy.interpolate.interp1d 中的 fill_value 导致 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37038977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com