нахождение градиента к определенному значению х - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть набор данных в массивном массиве - значения x, скажем, между 0-100 и значениями y. Мне нужно, чтобы получить градиент к конкретному значению х, например. x = 20, но я могу только получить функцию np.gradient, чтобы дать мне градиент при определенном значении индекса. сейчас у меня есть:

g=np.gradient(y)
print(g[20])

но это, конечно, дает мне градиент при i = 20, а не x = 20

У меня есть значения x и y в одном 2D-массиве и 2 x 1D-массивах, определенных в моем сценарии

EDIT: Я действительно пришел, чтобы решить это так:

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)]

1 Ответ

1 голос
/ 08 апреля 2019

Если значение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...