有没有一种简单的方法来获得numpy数组的连续元素的比率?
基本上类似于numpy.diff(x)?
所以如果x = [1,2,10,100 ...]
我想[0.5,0.2,0.1 ......] 即[x1 / x2,x2 / x3,x3 / x4]
我知道我可以通过移动和分割轻松地做到这一点,但与numpy.diff(x)相比它看起来很笨拙
答案 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:])]