Как поделить элементы массива друг на друга?
Необходимо из данного массива:
s=pd.Series(np.linspace(0,20,10))
создать массив, который состоит из результатов деления элементов исходного массива друг на друга.
Например, для массива: (1, 2, 4, 6), желаемый результат: (NAN, 2, 2, 1.5).
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Воспользуйтесь методом Series.pct_change():
res = 1 + s.pct_change()
Примеры:
In [3]: s1 = pd.Series([1, 2, 4, 6])
In [4]: 1 + s1.pct_change()
Out[4]:
0 NaN
1 2.0
2 2.0
3 1.5
dtype: float64
In [5]: s2 = pd.Series(np.linspace(0,20,10))
In [6]: s2
Out[6]:
0 0.000000
1 2.222222
2 4.444444
3 6.666667
4 8.888889
5 11.111111
6 13.333333
7 15.555556
8 17.777778
9 20.000000
dtype: float64
In [7]: 1 + s2.pct_change()
Out[7]:
0 NaN
1 inf
2 2.000000
3 1.500000
4 1.333333
5 1.250000
6 1.200000
7 1.166667
8 1.142857
9 1.125000
dtype: float64