Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.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 numpy';s interp函数-如何为给定的y值找到x值?_Python_Arrays_Numpy - Fatal编程技术网

Python numpy';s interp函数-如何为给定的y值找到x值?

Python numpy';s interp函数-如何为给定的y值找到x值?,python,arrays,numpy,Python,Arrays,Numpy,所以我有一个x值的数组(按递增顺序)和相应的y值。Numpy的interp函数接受X值以及X和y数组。对于给定的Y值,如何得到X的值??例如,如果y=0,x= 干杯 代码: j=((1840/(2*pi))**0.5)*exp(phi))-1.0#y轴,phi为一维阵列 t=linspace(0,40100)#x轴 a=interp(,t,j)#这给了我相应的y值! 那么,对于给定的y值,我应该怎么做才能得到x值呢 y\u interp=np.interp(x\u interp,x,y)基于先

所以我有一个x值的数组(按递增顺序)和相应的y值。Numpy的interp函数接受X值以及X和y数组。对于给定的Y值,如何得到X的值??例如,如果y=0,x=

干杯

代码:

j=((1840/(2*pi))**0.5)*exp(phi))-1.0#y轴,phi为一维阵列
t=linspace(0,40100)#x轴
a=interp(,t,j)#这给了我相应的y值!
那么,对于给定的y值,我应该怎么做才能得到x值呢

y\u interp=np.interp(x\u interp,x,y)
基于先前的插值
y=f(x\u interp)
生成函数的插值,其中x.size=y.size,x\u interp.size=y\u interp.size

如果你想让x作为y的函数,你必须构造逆函数。正如@NPE所指出的,您必须确保x和y始终在增加。检查这一点的简单方法是使用

np.all(np.diff(x) > 0)
np.all(np.diff(y) > 0)
现在求逆函数实际上非常简单:必须反转x和y的角色(因为我们处理插值)

用我的符号:
x\u值=np.interp(y\u值,x,y)


用你的符号:
x\u值=interp(y\u值,j,t)

你需要它来完成这个特定的功能,还是用于一般情况?请记住,如果函数是不可逆的,那么对于同一个
y
,可能存在多个
x
。您的示例应该更简单,我必须将
phi
替换为
t
,并从numpy import exp、linspace、interp、pi添加
,反转函数就成功了!是@NPE我需要它来完成这个特定的功能。幸运的是,随着x的增加,j的值会下降,所以我只是切换了角色,得到了答案。非常感谢,我很感激:)只是想知道:如果
y\u interp=np.interp(x\u interp,x,y)
,它不应该是
x\u值=np.interp(y\u值,y,x)
,而不是
x\u值=np.interp(y\u值,x,y)
?(正如
interp(y_值,j,t)
interp(,t,j)
np.all(np.diff(x) > 0)
np.all(np.diff(y) > 0)