2016-06-20 40 views
1

有沒有簡單的方法來獲取numpy數組的連續元素的比率?獲取元素的連續比例python

基本上類似於numpy.diff(x)的東西?

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

我想[0.5,0.2,0.1 ...] 即[X1/X2,X2/X3,X3/X4]

我知道我可以通過轉移和劃分很容易地做到這一點,但比起numpy.diff似乎笨拙(X)

+2

你不會得到比分而分的東西更好的東西。 – user2357112

回答

1

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

當你說「我可以輕鬆地通過移動和劃分來做到這一點」時,這可能就是你的意思,但我沒有看到任何笨拙的事情。

+0

事實上,你的語法x [: - 1]/x [1:]沒有什麼笨拙的!十分優雅。 – shev72

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