web-dev-qa-db-fra.com

Quelle est l'opération inverse de np.log () et np.diff ()?

J'ai utilisé l'instruction dataTrain = np.log(mdataTrain).diff() dans mon programme. Je veux inverser les effets de la déclaration. Comment peut-on le faire en Python?

9
Sushodhan

L'inverse impliquera de prendre la somme cumulée puis l'exponentielle. Puisque pd.Series.diffperd informations, à savoir la première valeur d'une série, vous devrez stocker et réutiliser ces données:

np.random.seed(0)

s = pd.Series(np.random.random(10))

print(s.values)

# [ 0.5488135   0.71518937  0.60276338  0.54488318  0.4236548   0.64589411
#   0.43758721  0.891773    0.96366276  0.38344152]

t = np.log(s).diff()
t.iat[0] = np.log(s.iat[0])
res = np.exp(t.cumsum())

print(res.values)

# [ 0.5488135   0.71518937  0.60276338  0.54488318  0.4236548   0.64589411
#   0.43758721  0.891773    0.96366276  0.38344152]
11
jpp