python - 找到特定 x 值的梯度
问题描述
我在 numpy 数组中有一组数据 - x 值,可以说在 0-100 和 y 值之间。我需要将梯度变为特定的 x 值 ex。x=20 但我只能得到 np.gradient 函数来给我某个索引值的梯度。现在我有:
g=np.gradient(y)
print(g[20])
但这当然给了我 i=20 而不是 x=20 的梯度
我的脚本中定义了一个 2D 数组和 2 个 1D 数组中的 x 和 y 值
编辑:我实际上是这样解决它的:
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
推荐阅读
- django - 如何通过删除另一个模型具有外键关系的结果来过滤 Django 查询集?
- asp.net - 如何将 Angular 连接到 PostgresSQL?
- python - 如何将带有单引号的字符串元素转换为 Python 列表中的双引号
- java - Java Spring 401 Unauthorized
- php - 重定向后如何更改我的代码以使用验证码
- sql - 根据原始数据构建时间窗口计数器 - Big Query
- apache - 将 yesod 应用程序作为(快速)CGI 服务
- javascript - 覆盖单个实例的数组函数
- javascript - cryptojs.decrypt 返回空结果
- twilio - Twilio 轨道禁用未按预期工作