我有一组numpy数组中的数据 - x值,比如0-100和y值。我需要将渐变到特定的x值ex。 x = 20但是我只能得到np.gradient函数来给我一个索引值的渐变。现在我有:
g=np.gradient(y)
print(g[20])
但这当然给了我i = 20而不是x = 20的梯度
我在一个2D数组中有x和y值,在我的脚本中定义了2个1D数组
编辑:我实际上来这样解决它:
def grad(x, value):
def find_nearest(x, value):
x = np.asarray(Timeppmh)
idx = (np.abs(x - value)).argmin()
i = x.tolist().index(x[idx])
return i
g=np.gradient(yp,x)
find_nearest(x,value)
return g[find_nearest(x,value)]
如果值20在x
,你可以做j[x == 20]
。但是,如果不是这种情况,则需要近似梯度值。您可以使用例如线性插值。
import numpy as np
x = np.linspace(0, 100, 80)
print(20 in x) # 20 is not in x
# False
y = x * x + 3 * x + 2
# Pass x as second argument for value spacing
g = np.gradient(y, x)
print(np.interp(20, x, g)) # Should be 43
# 43.00000000000001