Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scipy.interpole.interp1d与kind=";“以前的”;不';我们不能像预期的那样推断_Python_Scipy_Interpolation - Fatal编程技术网

Python scipy.interpole.interp1d与kind=";“以前的”;不';我们不能像预期的那样推断

Python scipy.interpole.interp1d与kind=";“以前的”;不';我们不能像预期的那样推断,python,scipy,interpolation,Python,Scipy,Interpolation,前两个nan值有意义,但后两个值没有意义,因为前一个值可用 现在如果我使用外推: import numpy as np from scipy.interpolate import interp1d a = np.arange(10) b = a + 100 iterp = interp1d(a, b, kind="previous", bounds_error=False) print(iterp([-1,-2,5,8,12,25])) # [nan nan 105. 108. nan

前两个
nan
值有意义,但后两个值没有意义,因为前一个值可用

现在如果我使用外推:

import numpy as np
from scipy.interpolate import interp1d

a = np.arange(10)
b = a + 100

iterp = interp1d(a, b, kind="previous", bounds_error=False)
print(iterp([-1,-2,5,8,12,25]))
# [nan nan  105.  108. nan nan]
最后两个
109.
有意义,但前两个
100.
没有意义,因为之前没有值


我想要的输出是直观的
[nannan 105.108.109.109.]
。当然,我可以选择上面的任何一个选项作为基础,并摆弄它。但是有没有一种直接的方法可以获得想要的结果呢?

好的,我想这个解决方法还不错:

iterp = interp1d(a, b, kind="previous", fill_value="extrapolate")
print(iterp([-1,-2,5,8,12,25]))
# [100. 100. 105. 108. 109. 109.]

“现在,如果我使用外推:…[t]最后两个109.有意义,但前两个100.不要,因为没有以前的值。”这看起来像一个bug,或者至少是一个丑陋的API疣。在此处报告的@WarrenWeckesser(很高兴您同意:)上为此创建一个问题可能是值得的
iterp = interp1d(a, b, kind="previous", fill_value=(np.nan, b.max()), bounds_error=False)
print(iterp([-1,-2,5,8,12,25]))
# [ nan  nan 105. 108. 109. 109.]