Python 以numpy格式提取数值数组函数的值
如果我用两个数组定义一个函数,例如:Python 以numpy格式提取数值数组函数的值,python,numpy,Python,Numpy,如果我用两个数组定义一个函数,例如: from numpy import * x = arange(-10,10,0.1) y = x**3 如何通过插值两个较近点y(5)和y(5.1)的值来提取y(5.05)的值?现在,如果我想找到该值,我使用以下方法: y0 = y[x>5][0] 对于x=5.1,我应该获得y的值,但我认为存在更好的方法,而且可能是正确的方法。如果线性插值足够,则有: >>> import numpy as np >>> x =
from numpy import *
x = arange(-10,10,0.1)
y = x**3
如何通过插值两个较近点y(5)和y(5.1)的值来提取y(5.05)的值?现在,如果我想找到该值,我使用以下方法:
y0 = y[x>5][0]
对于x=5.1
,我应该获得y
的值,但我认为存在更好的方法,而且可能是正确的方法。如果线性插值足够,则有:
>>> import numpy as np
>>> x = np.arange(-10, 10, 0.1)
>>> y = x**3
>>> np.interp(5.05, x, y)
128.82549999999998
>>> 5.05**3
128.787625
在scipy
中有一系列用于插值的工具:
导入scipy.interpolate
>>>f=scipy.插值.单变量样条线(x,y)
>>>f
>>>f(5.05)
阵列(128.7876250000025)
在numpy/scipy中有一个用于此的函数
import numpy as np
np.interp(5.05, x, y)
5.05**3
?;)你是对的,但我会在其他更复杂的函数中使用它;)非常感谢。这是一个微不足道的问题。。。我不知道interp
函数单变量样条线(x,y,s=0)
会精确插值,即f(x)=y
。(注意:如果使用s>0
平滑,s
值必须使用y
缩放)
import numpy as np
np.interp(5.05, x, y)