获取元素的连续比率python

she*_*ira 4 python numpy

有没有一种简单的方法来获取 numpy 数组的连续元素的比率?

基本上类似于 numpy.diff(x) 的东西?

所以如果 x=[1,2,10,100 ...]

我想要 [0.5 ,0.2, 0.1 ...] 即 [x1/x2, x2/x3 , x3/x4]

我知道我可以通过移动和除法轻松做到这一点,但与 numpy.diff(x) 相比似乎很笨拙

War*_*ser 7

使用 numpy:

In [6]: x
Out[6]: array([   1.,    2.,   10.,  100.,  150.,   75.])

In [7]: x[:-1]/x[1:]
Out[7]: array([ 0.5       ,  0.2       ,  0.1       ,  0.66666667,  2.        ])
Run Code Online (Sandbox Code Playgroud)

当你说“我可以通过移动和分割轻松做到这一点”时,这可能就是你的意思,但我没有看到任何笨拙的地方。


ber*_*ers 5

我什至不想发布这个,但是x = [6, 2, 4, 10]

np.exp(-np.diff(np.log(x)))
Run Code Online (Sandbox Code Playgroud)

返回array([3. , 0.5, 0.4])