获得元素python的连续比率

时间:2016-06-20 15:44:18

标签: 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)相比它看起来很笨拙

3 个答案:

答案 0 :(得分:4)

使用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.        ])

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

答案 1 :(得分:2)

我什至都不愿意发布,但是对于x = [6, 2, 4, 10]

np.exp(-np.diff(np.log(x)))

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

答案 2 :(得分:1)

xs = [1, 2, 10, 100, ...]
[x1/x2 for (x1, x2) in zip(xs, xs[1:])]