Omk*_*tra 2 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 axis, phi is a 1-D array
t = linspace(0, 40, 100) #x axis
a = interp(<x-value>,t,j) # this gives me the corresponding y value!
Run Code Online (Sandbox Code Playgroud)
那么我该怎么做才能获得给定y值的x值!!
y_interp = np.interp(x_interp, x, y)y_interp = f(x_interp)根据先前的插值产生函数的插值y = f(x),其中x.size = y.size,x_interp.size = y_interp.size.
如果希望x作为y的函数,则必须构造反函数.正如@NPE指出的那样,你必须确保x和y总是在增加.检查这个的简单方法是使用
np.all(np.diff(x) > 0)
np.all(np.diff(y) > 0)
Run Code Online (Sandbox Code Playgroud)
现在找到反函数实际上非常简单:你必须反转x和y的角色(因为我们处理插值).
用我的记号:x_value = np.interp(y_value, x, y).
用你的记号: x_value = interp(y_value, j, t)
| 归档时间: |
|
| 查看次数: |
5164 次 |
| 最近记录: |